//創(chuàng)建一個按鈕window.onload=function(){varoBtn=document.getElementById('btn');//獲取input對象oBtn.onclick=function(){//添加點擊事件ff();};functionff(){alert('哈哈')}//定義函數(shù)ff};ff();//報錯ffisnotdefined請問為什么oBtn在點擊的時候,會彈出‘哈哈’?今天和同學遇到了這個問題,當時我們的困惑是:functionff(){alert('哈哈')},在window.onload中的代碼執(zhí)行完畢后,應該就不存在了吧?那么input點擊的時候,還怎么能調(diào)用到ff這個函數(shù)?................................................................................................回家查了查,目前我的理解是因為作用域鏈:1.oBtn.onclick=function(){ff();}定義在window.onload函數(shù)里。2.當oBtn對象點擊時,執(zhí)行ff函數(shù)。3.oBtn對象本身(好像叫調(diào)用對象?犀牛書5版)沒有ff函數(shù),到其作用域鏈的下一個對象中查找,也就是到window.onload=function(){...}中查找。4.找到了functionff(){alert('哈哈');}5.因此oBtn點擊的時候,彈出了‘哈哈’我的理解正確嗎?如果有錯請您幫我指出來,謝謝。
請教一下關(guān)于javascript作用域鏈的問題
一只萌萌小番薯
2019-04-10 20:48:51