第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教一下關(guān)于javascript作用域鏈的問題

請教一下關(guān)于javascript作用域鏈的問題

一只萌萌小番薯 2019-04-10 20:48:51
//創(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點擊的時候,彈出了‘哈哈’我的理解正確嗎?如果有錯請您幫我指出來,謝謝。
查看完整描述

2 回答

?
侃侃爾雅

TA貢獻1801條經(jīng)驗 獲得超16個贊

這個叫閉包(Closure)來著。當然跟作用域鏈有關(guān)系,但是主要還是要理解閉包。另外還要理解JavaScript的事件機制。
現(xiàn)在有點忙沒法詳細說,你可以先按照我上面提到的兩點去查一查。
                            
查看完整回答
反對 回復 2019-04-10
?
回首憶惘然

TA貢獻1847條經(jīng)驗 獲得超11個贊

我的理解:
ff();//報錯ffisnotdefined,因為全局變量下沒有叫ff的函數(shù)。
window.onload=function(){...}其實就是一個閉包,外界是無法訪問里面的變量和方法的。除非把方法給暴露出來。同理IIFE(立即執(zhí)行函數(shù))。
                            
查看完整回答
反對 回復 2019-04-10
  • 2 回答
  • 0 關(guān)注
  • 373 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號