Js作用域理解

2021-09-27 18:31:59 字數 936 閱讀 6526

如何理解: 

changecolor() 函式可以訪問作用域:   global scope   changecolor scope自己作用域

swapcolor() 函式可以訪問作用域:   global scope   changecolor scope外層函式、和swapcolor scope作用域

*** 如何某乙個變數在當前函式中沒有,那麼會去上一層函式中找變數

var fn2= function()

// 如何理解,在記憶體中建立一塊區域,然後通過f2這個變數指向這塊記憶體區域, 這塊區域的函式開始是沒有名稱的

,這種函式可以叫做匿名函式

/**

*  1.js中閉包:

*  執行compareobjectfunction 函式以後,理論上形參 prop 裡面的函式 在棧中  都會被記憶體釋放

*  但是 返回匿名函式,作用域擴大,記憶體不會被釋放

*  通過返回函式來擴大作用域的方法就是閉包

*/function compareobjectfunction(prop)else if(obj1[prop] == obj2[prop])else }}

var o1=;

var o2=;

var compare= compareobjectfunction("name");

console.info("閉包結果是:",compare(o1,o2));

js作用域理解

關於預編譯解釋過程 作用域定義 變數 變數作用於又稱上下文 和函式生效 能被訪問 的區域 首先 作用域 隨函式產生而產生 也就是我們常見的 scope 1 每乙個js函式為乙個物件,物件函式屬性與方法,i他們歸js引擎所用 包括可見於不可見 scope 為其中乙個 2 scope 其中儲存了 執行期...

JS作用域的理解

簡單來說,閉包是指有權訪問其他函式作用域中的變數的函式,是定義在函式內部的函式。當某個函式被呼叫時,會建立乙個執行環境和相應的作用域鏈,自由變數不斷向父級作用域中查詢其變數的定義。自由變數指當前作用域中沒有定義的變數。父級作用域是指函式定義時的上一級作用域,而不是函式執行的上一級作用域。閉包的使用場...

js作用域鏈的理解

18.12.26 執行環境定義了變數和函式有權訪問的其他資料。每個執行環境都有與之對應的變數物件 variable object 儲存著該環境中定義的所有變數和函式。全域性執行環境是最外圍的乙個執行環境,在web瀏覽器中,我們可以認為他是window物件,因此所有的全域性變數和函式都是作為windo...