javascript - 函數(shù)聲明和匿名函數(shù)有什么不同?(前端小白求助。。)
問(wèn)題描述
用函數(shù)聲明的方式定義了一個(gè)改變?cè)豷tyle屬性的函數(shù)會(huì)報(bào)錯(cuò)
但是window.onload下不會(huì)報(bào)錯(cuò)
問(wèn)題解答
回答1:寶寶 這個(gè)和你用什么函數(shù)沒(méi)關(guān)系!是因?yàn)閛nload會(huì)把文檔加載完才觸發(fā) 而你肯定是因?yàn)槲臋n沒(méi)加載完 沒(méi)找到元素 所以才報(bào)錯(cuò) 把js放到元素下面
回答2:這和函數(shù)聲明和匿名沒(méi)有關(guān)系,而是和函數(shù)的調(diào)用時(shí)機(jī)有關(guān)系。改成這樣,還能找到和匿名函數(shù)的問(wèn)題么?
function change () { /* ... */ }window.onload = change
前者在調(diào)用時(shí),box元素還沒(méi)有,所以報(bào)了錯(cuò);后者在DOM ready后調(diào)用,所以可以執(zhí)行。你可以在change函數(shù)中l(wèi)og一下box對(duì)象看看。
回答3:問(wèn)題不是這個(gè),你需要知道文檔是從上到下加載的,你把js文件放在了head里執(zhí)行到j(luò)s文件的時(shí)候,這個(gè)時(shí)候連body都還沒(méi)加載,自然無(wú)法獲取到box,也就無(wú)法設(shè)置css了。你可以把js文件放到body的尾部:
...<script src='http://www.cgvv.com.cn/wenda/x.js'></script></body>
這樣就不需要window.onload了如果放在了head里面就需要在js文件頭部寫window.onload=function(){......}
相關(guān)文章:
1. javascript - js 有什么優(yōu)雅的辦法實(shí)現(xiàn)在同時(shí)打開(kāi)的兩個(gè)標(biāo)簽頁(yè)間相互通信?2. css3 - 在sublime text里, 如何讓emmet生成的帶前綴css屬性垂直對(duì)齊?3. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問(wèn)?4. 想找個(gè)php大神仿個(gè)網(wǎng)站。5. html - CSS如何處理圖片縮放問(wèn)題?6. css3 - Typecho 后臺(tái)部分表單按鈕在 Chrome 下出現(xiàn)靈異動(dòng)畫(huà)問(wèn)題,求解決7. html5和Flash對(duì)抗是什么情況?8. javascript - 一個(gè)抽獎(jiǎng)的效果(如圖)?9. javascript - weex和node,js到底是怎樣一個(gè)關(guān)系呢?10. javascript - 求解答,koa-bodyparser獲取到的參數(shù)是空對(duì)象,為什么?????
