javascript中函數的執行環境、作用域鏈、變量對象與活動對象

javascript高級程序設計中;對執行環境、作用域鏈、變量對象、活動對象的解釋:

1、執行環境:

執行環境;有時也叫環境;是JavaScript中最爲重要的一個概念;執行環境定義了變量或函數有權訪問的其他數據;

2、變量對象:

每一個執行環境都有一個與之關聯的變量對象;環境中定義的所有的變量和函數都保存在這個的對象中;

3、作用域鏈:

代碼在環境中執行時;會創建變量對象的作用域鏈;保證對執行環境有權訪問的所有變量和函數的有序訪問;作用域鏈的前端;始終是當前執行代碼所在環境的變量對象;

4、活動對象:

如果當前執行環境是函數;則將活動對象作爲變量對象;

 

理解:執行環境是一個感性的籠統的說法;指的是函數運行時所需要的所有的必要因素;在這裏就是包含所有的JavaScript中預先定義和人爲定義的變量、函數等其他數據;而如何將這些數據“整齊有序”的存放起來;JavaScript不會允許將其數據散亂的堆積在一起;於是有了變量對象的這個概念;將所有的執行環境中的變量和函數都作爲這個對象的“屬性和方法”;於是散亂的數據就可以實現整齊有序的訪問了;

 

活動對象則單是執行環境是函數的時候;使用this、arguments和其他命名參數的值初始化函數的活動對象;作用域鏈則是包含當前執行環境中的變量對象和上級環境的變量對象,一直到全局環境的變量對象;它有一個內部屬性:[[scope]];

本質上;作用域鏈是一個指向變量對象的指針列表;只是引用變量對象。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章