js函式的自執行和閉包

2021-09-18 05:29:41 字數 683 閱讀 3157

// 有些人叫這個是自執行的匿名函式(即便它不是),因為它沒有呼叫自身,它只是立即執行而已。

(function () ());

// 為函式表示式新增乙個標示名稱,可以方便debug

// 但一定命名了,這個函式就不再是匿名的了

(function foo() ());

// 建立乙個立即呼叫的匿名函式表示式

// return乙個變數,其中這個變數裡包含你要暴露的東西

// 返回的這個變數將賦值給counter,而不是外面宣告的function自身

var counter = (function () ,

set: function (val) ,

increment: function ()

};} ());

// counter是乙個帶有多個屬性的物件,上面的**對於屬性的體現其實是方法

counter.get(); // 0

counter.set(3);

counter.increment(); // 4

counter.increment(); // 5

counter.i; // undefined 因為i不是返回物件的屬性

i; // 引用錯誤: i 沒有定義(因為i只存在於閉包)

JS閉包 自執行函式小記

閉包概念 閉包就是就是函式的 堆疊 在函式返回後並不釋放,當在乙個函式內定義內部函式就會產生閉包 當乙個內部函式被呼叫,就會形成閉包,閉包就是能夠讀取其他函式內部變數的函式 閉包就是函式的區域性變數集合,只是這些區域性變數在函式返回後會繼續存在。舉個栗子 期望返回結果 內部函式中執行次數 0 內部函...

for迴圈 js定時器 閉包 自執行函式

for迴圈 js定時器 閉包 自執行函式 前言 面試題目經常會出現這麼一道題目,請將1 10有序每隔一秒輸出。看似這個題目很簡單,但是確難倒了很多js初學者。還有跟這個類似情況,比如給五個dom新增hover事件,理想效果是列印出當前索引,知識都是列印出最後乙個值。錯誤 var len 10 for...

對自執行函式與閉包的理解

對自執行函式與閉包的理解 function 推薦使用這個 function 但是這個也是可以用的 由於括弧 和js的 異或,逗號等操作符是在函式表示式和函式宣告上消除歧義的 所以一旦解析器知道其中乙個已經是表示式了,其它的也都預設為表示式了 說白的,下邊這三行,因為有了 他們後邊的式子不會再報錯了,...