JavaScript函數(shù)作用域鏈分析
本文實例分析了JavaScript函數(shù)作用域鏈。分享給大家供大家參考。具體分析如下:
作用域鏈:
JavaScript的每個函數(shù)function都有自己的作用域,使用Active Object(簡稱AO)活動對象來保存,在相互嵌套的函數(shù)中形成了作用域鏈,如下圖所示:
作用域鏈就是從里到外的AO鏈
變量的尋找:
函數(shù)fn3中使用的變量,如在fn3作用域內(nèi)尋找不到,則往外層fn2作用域?qū)ふ?,以此類推,直到全局對象window
代碼演示如下:
var c = 5; function t1(){ var d = 6; function t2(){ var e = 7; var d = 3; //如果在這里聲明的var d = 3, //那么函數(shù)就不在向外尋找變量d,輸出的值為15 console.log(c+d+e); } t2(); } t1();
了解了JavaScript作用域鏈后,在函數(shù)里面使用頻率較高的外部變量,最好先將外部變量保存為局部變量后,再進行操作,這樣就大大減少通過作用域鏈查找變量的時間。
希望本文所述對大家的javascript程序設(shè)計有所幫助。
相關(guān)文章
Three.js開發(fā)實現(xiàn)3D地圖的實踐過程總結(jié)
這篇文章主要給大家介紹了關(guān)于利用Three.js開發(fā)實現(xiàn)3D地圖的實踐過程,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用three.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11微信小程序錄音實現(xiàn)功能并上傳(使用node解析接收)
在我們的日常開發(fā)中經(jīng)常會遇到錄音功能,并上傳到服務(wù)器,今天小編給大家分享微信小程序錄音功能實現(xiàn)并上傳錄音文件,使用node解析接收,需要的朋友可以參考下2020-02-02JS(JQuery)操作Array的相關(guān)方法介紹
本篇文章主要是對JS(JQuery)操作Array的相關(guān)方法進行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02微信小程序?qū)崿F(xiàn)事件傳參與數(shù)據(jù)同步流程詳解
這篇文章主要介紹了微信小程序開發(fā)中實現(xiàn)事件傳參與數(shù)據(jù)同步的詳細(xì)流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10