JavaScript函數(shù)作用域鏈分析
本文實例分析了JavaScript函數(shù)作用域鏈。分享給大家供大家參考。具體分析如下:
作用域鏈:
JavaScript的每個函數(shù)function都有自己的作用域,使用Active Object(簡稱AO)活動對象來保存,在相互嵌套的函數(shù)中形成了作用域鏈,如下圖所示:
作用域鏈就是從里到外的AO鏈
變量的尋找:
函數(shù)fn3中使用的變量,如在fn3作用域內尋找不到,則往外層fn2作用域尋找,以此類推,直到全局對象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程序設計有所幫助。
相關文章
Three.js開發(fā)實現(xiàn)3D地圖的實踐過程總結
這篇文章主要給大家介紹了關于利用Three.js開發(fā)實現(xiàn)3D地圖的實踐過程,文中通過示例代碼介紹的非常詳細,對大家學習或者使用three.js具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11微信小程序錄音實現(xiàn)功能并上傳(使用node解析接收)
在我們的日常開發(fā)中經常會遇到錄音功能,并上傳到服務器,今天小編給大家分享微信小程序錄音功能實現(xiàn)并上傳錄音文件,使用node解析接收,需要的朋友可以參考下2020-02-02微信小程序實現(xiàn)事件傳參與數(shù)據(jù)同步流程詳解
這篇文章主要介紹了微信小程序開發(fā)中實現(xiàn)事件傳參與數(shù)據(jù)同步的詳細流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-10-10