關于函數表達式問題?
如本次編程挑戰目的是實現點擊某li塊顯現該li塊對應的div塊而影藏其余2個div塊,而實現影藏的div塊的js代碼核心為2個for循環以及2個函數表達式,第一個表達式為:widnow.onload=function(){//代碼}
而第二個表達式為:?oLis[i].onclick = function() {//代碼};
由于進階篇并沒有講函數表達式,所以經過百度發現想要使函數運行也得函數調用譬如:
var a=function(){console.log("hello!")};
這樣子并不會使得代碼運行,但是只要加上:
a();則編譯器立馬打印hello!
對于?oLis[i].onclick = function() {//代碼};只能理解為oLis[i].onclick鼠標點擊后會立即觸發后邊的function代碼,所以我們不用oLis[i].onclick(參數)因為參數就是鼠標點擊。
但是widnow.onload=function(){//代碼}怎么使得function里的代碼運行的?這里沒有可觸發的window.onload(參數)的參數,也沒有類似于a()這樣的函數調用,請問是怎么運行的?
2016-10-21
每次刷新加載網頁的時候,會自動調用 windows.onload
2016-10-21
我剛剛又去百度了一下window.onload這句詞法意味著頁面加載完,就去執行;我們提交完代碼開始運行,首先碰到widnow.onload=function(){//代碼},開始加載頁面,頁面加載完后立即執行(即window.onload)其實就相當于window.onload();于是就完成了此次的任務。