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

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

一、執行環境:前端

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

二、變量對象:函數

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

三、做用域鏈:設計

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

四、活動對象:對象

若是當前執行環境是函數;則將活動對象做爲變量對象;blog

 

理解:執行環境是一個感性的籠統的說法;指的是函數運行時所須要的全部的必要因素;在這裏就是包含全部的JavaScript中預先定義和人爲定義的變量、函數等其餘數據;而如何將這些數據「整齊有序」的存放起來;JavaScript不會容許將其數據散亂的堆積在一塊兒;因而有了變量對象的這個概念;將全部的執行環境中的變量和函數都做爲這個對象的「屬性和方法」;因而散亂的數據就能夠實現整齊有序的訪問了;ip

 

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

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

相關文章
相關標籤/搜索