首頁  >  文章  >  web前端  >  JavaScript函數作用域鏈分析_javascript技巧

JavaScript函數作用域鏈分析_javascript技巧

WBOY
WBOY原創
2016-05-16 16:14:131014瀏覽

本文實例分析了JavaScript函數作用域鏈。分享給大家供大家參考。具體分析如下:

作用域鏈:

JavaScript的每個函數function都有自己的作用域,使用Active Object(簡稱AO)活動物件來保存,在相互嵌套的函數中形成了作用域鏈,如下圖所示:

作用域鏈就是從裡到外的AO鏈

變數的尋找:

函數fn3中使用的變量,如在fn3作用域內尋找不到,則往外層fn2作用域尋找,以此類推,直到全局對象window

程式碼示範如下:

var c = 5; 
function t1(){ 
  var d = 6; 
  function t2(){ 
    var e = 7; 
    var d = 3;
 //如果在这里声明的var d = 3,
 //那么函数就不在向外寻找变量d,输出的值为15 
    console.log(c+d+e); 
  } 
  t2(); 
} 
t1();

了解了JavaScript作用域鏈後,在函數裡面使用頻率較高的外部變量,最好先將外部變量保存為局部變量後,再進行操作,這樣就大大減少通過作用域鏈查找變量的時間。

希望本文所述對大家的javascript程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn