JS基礎 閉包

2021-08-19 20:28:44 字數 1036 閱讀 7152

注:自由變數是既不是在本地宣告又不作為引數傳遞的一類變數。

function

a() return b;

}var b = a();

b();//hello closure!

* 定義乙個函式a()

* a中定義了函式b()

* a中返回b

* 執行a(),把a的返回結果賦值給變數b

* 執行b()

閉包會在父函式外部,改變父函式內部變數的值。所以,如果你把父函式當作物件(object)使用,把閉包當作它的公用方法(public method),把內部變數當作它的私有屬性(private value),這時一定要小心,不要隨便改變父函式內部變數的值。

var name = "the window"; // 全域性

var object = ;     

} };  

alert(object.getnamefunc()()); // the window

var name = "the window"; // 全域性

var object = ;     

} };  

alert(object.getnamefunc()()); // my object

var name = "the window"; // 全域性

var object = ;     

} };  

alert(object.getnamefunc()()); // the window

var name = "the window"; // 全域性

var object = ;     

} };  

alert(object.getnamefunc().call(object)); // my object call改變this指向

JS基礎 變數 閉包

1.變數的作用域 變數可以是全域性的,也可以是區域性的,在談論全域性變數和區域性變數之間的區別時,我們其實是在討論變數的作用域 scope i.全域性變數 可以在指令碼的任何位置被引用。作用域是整個指令碼。ii.區域性變數 只存在於對它作出宣告的那個函式的內部,在那個函式外部是無法引用它的。作用域僅...

js相關語法基礎 6 閉包

高階函式除了可以接受函式作為引數以外,還可以把函式作為結果值返回。來實現乙個對array的求和。傳統方法。function sum arr console.log sum 1,2,3,4 不返回求和的結果,而返回求和的函式。function lazy sum arr return sum var f...

js基礎之閉包與繼承

閉包是由什麼構成 閉包 函式 詞法作用域詞法作用域 即以變數宣告定義的位置為參照,如果當前位置沒有定義,就會訪問父級定義的位置 廣義上閉包 var a 1000 function fn1 fn1 特點 長期駐留記憶體 閉包應用場景和實現 求和 function makeadd x 設定字型大小 fu...