關於js閉包。之前我一直以為是匿名函式,以為封閉式的建立即執行銷毀就是閉包,其實這是匿名函式,不一樣的。也沒有閉包的使用經驗。
後來去網上查了下才知道,閉包的意思是:函式內部還有函式,返回乙個函式,內部函式可訪問外部函式的變數。
乙個最簡單的案例:
a是外部函式,b是內部函式,b可以使用a的變數i,呼叫a函式返回b函式,執行c既是執行b。其實也就意味著在a函式的外部,讀取到了a函式內部的變數值。
a中的變數i將一直在記憶體中,直至c變數刪除。
刪除變數:delete c;
obj.geta()輸出2,this代表當前物件。而閉包(內部函式)中的this代表window,這裡為什麼不輸出1呢?因為這個a是let宣告賦值的,不會傳給window。
return function是直接返回乙個匿名函式
用這種方式就可以了,外部將this賦值給乙個新變數,再給閉包用
js 閉包和匿名函式
前面學了這麼多知識,今天就來看看匿名函式和閉包吧!想要學習閉包先來看看什麼是匿名函式吧!一 匿名函式 匿名函式就是沒有名字的函式。他有兩種宣告方式 1.典型的函式宣告 function functionname arg0,arg1,arg2 2.函式表示式 var functionname func...
js 匿名函式 閉包前奏
js裡面 萬物皆物件 函式同理 三種定義方式 a.傳統的如同c語言一樣的定義方式 function abc b.少見的定義方式 var abc new function 引數 由此可見我們的function是建構函式function的物件例項,即函式也是物件 c.匿名函式定義 var abc fun...
匿名函式和閉包
匿名函式 匿名函式和普通函式 function box alert box 閉包概念 閉包是指有權訪問另乙個函式作用域中的變數的函式,建立閉包的常見的方式,就是在乙個函式內部建立另乙個函式,通過另乙個函式訪問這個函式的區域性變數。閉包作用 使用閉包有乙個優點,也是其缺點。可以把區域性變數駐留在記憶體...