setinterval 必報 閉包 定時器

2021-10-18 17:18:19 字數 1727 閱讀 5150

一、什麼是閉包?有什麼作用

什麼是閉包

閉包是定義在乙個函式內部的函式,它可以訪問父級函式的內部變數。當乙個閉包被建立時,會關聯乙個作用域——父級函式的所有內部變數的集合,這個作用域不會在父級函式執行完後立即銷毀,而是永久儲存在記憶體中,直到這個閉包被銷毀,只有通過這個閉包可以訪問/操作這個記憶體中的資料。如果將這個閉包作為函式返回值,並賦值給乙個全域性變數,那麼就可以通過閉包在函式外部來訪問函式的內部變數了。因此,可以說閉包是將函式內部和函式外部連線起來的一座橋梁。

簡單的說,閉包就是能夠讀取其他函式內部變數的函式

閉包有什麼作用

閉包有兩大用處,乙個是可以讀取函式的內部變數,另乙個是讓這些內部變數的值始終保持在記憶體中。

function f1(), x)的原理是在執行 settimeout時,過x毫秒後將function(){}加入js的主程序執行佇列。

settimeout(function(){}, 0)則會立即將function(){}加入佇列,不過由於最小延遲時間不能小於4毫秒(html5規範規定,不同瀏覽器的最小延遲時間不一樣),settimeout(function(){}, 0)的延遲時間會是4毫秒或更短,但不會是0毫秒。

三、下面的**輸出多少?修改**讓fnarri[i]()輸出i。使用兩種以上的方法

var fnarr = ;

for (var i = 0; i < 10; i ++) )(i);

console.log( fnarr[3]() );

/**方法二:給函式繫結屬性**/

var fnarr = ;

for (var i = 0; i < 10; i ++) ,1000);

clock();

六、寫乙個函式,計算settimeout的最小時間粒度

function getmini(),0)

七、下面這段**輸出結果是?為什麼

var a = 1;

settimeout(function(), 0); // settimeout(0)內函式會加入當前**執行佇列,待當前作用域內所有**執行完後再執行

var a ; // 前面已經定義過變數a,再次定義時會忽略

console.log(a);

a = 3;

console.log(a);

輸出結果依次為:1 3 2

八、下面這段**的輸出結果是什麼?為什麼

var flag = true;

settimeout(function(),0)

while(flag){}

console.log(flag);

沒有輸出,settimeout(0)內函式在當前**段最後執行,執行while(flag){}時,flag為true,這一句會一直迴圈執行,導致後面的console.log(flag)也無法執行

九、下面**輸出?如何輸出delayer: 0, delayer: 1 ...(用閉包來實現)

for(var i=0;i<5;i++), 0); //每迴圈一次都會在佇列中加乙個function

console.log(i);

// 0 1 2 3 4 delayer:5 delayer:5 delayer:5 delayer:5 delayer:5

for(var i=0;i<5;i++), 0);

})(i);

console.log(i);

// 0 1 2 3 4 delayer:0 delayer:1 delayer:2 delayer:3 delayer:4

閉包 解決閉包問題

1 函式和對其周圍狀態 lexical environment,詞法環境 的引用 在一起構成閉包 closure 2 函式與函式所依賴的上下文環境組成閉包問題。3 閉包指的是 能夠訪問另乙個函式作用域的變數的函式。清晰的講 閉包就是乙個函式,這個函式能夠訪問其他函式的作用域中的變數。var arr ...

python 閉包 python 閉包

閉包 因為python中函式也可以當作物件,所以如果出現當我們返回乙個函式,而該函式含有外部變數的時候就形成了閉包。閉包的特點 是個巢狀函式 可以獲得非區域性的變數 將函式當作物件返回 看乙個例子會更易理解 def make printer msg msg hi there def printer ...

閉包 Python中的閉包

通俗地講就是別人家有某個東西,你想拿到但是因為許可權不夠 不打死你才怪 但是你可以跟家裡的孩子套近乎,通過他拿到!這個家就是區域性作用域,外部無法訪問內部變數,孩子是從家裡返回物件,對家裡的東西有訪問許可權,借助返回物件間接訪問內部變數!def outer 別人家 x 10 別人家裡的東西 def ...