第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將函數(shù)傳遞給循環(huán)中的setTimeout:總是最后一個值?

將函數(shù)傳遞給循環(huán)中的setTimeout:總是最后一個值?

幕布斯6054654 2019-08-19 16:04:18
將函數(shù)傳遞給循環(huán)中的setTimeout:總是最后一個值?我正在嘗試使用setTimeout來執(zhí)行我傳遞信息的匿名函數(shù),我遇到了麻煩。這個(硬編碼版本)可以正常工作:setTimeout(function(){alert("hello");},1000);setTimeout(function(){alert("world");},2000);但是我試圖從數(shù)組中取出hello和world并將它們傳遞給函數(shù),而不是(a)使用全局變量,以及(2)使用eval。我知道如何使用全局或eval來做到這一點,但是如何在沒有它的情況下做到這一點。這是我想做的(但我知道它不會起作用):var strings = [ "hello", "world" ];var delay = 1000;for(var i=0;i<strings.length;i++) {     setTimeout( function(){alert(strings[i]);}, delay);     delay += 1000;}當然,字符串[i]將脫離上下文。如何在沒有eval或globals的情況下將字符串[i]傳遞給該匿名函數(shù)?
查看完整描述

3 回答

?
胡子哥哥

TA貢獻1825條經(jīng)驗 獲得超6個贊

這是經(jīng)常重復的“如何在閉包中使用循環(huán)變量”問題。

規(guī)范的解決方案是調(diào)用一個函數(shù),該函數(shù)返回一個綁定到循環(huán)變量當前值的函數(shù):

var strings = [ "hello", "world" ];var delay = 1000;for(var i=0;i<strings.length;i++) {
    setTimeout(
        (function(s) {
            return function() {
                alert(s);
            }
        })(strings[i]), delay);
    delay += 1000;}

外部定義function(s) { ... }創(chuàng)建一個新的作用域,其中s綁定到所提供參數(shù)的當前值 - 即strings[i]內(nèi)部作用域可用的位置。


查看完整回答
反對 回復 2019-08-19
?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

只需在setTimeout調(diào)用周圍添加一個范圍:

var strings = [ "hello", "world" ];var delay = 1000;for(var i=0;i<strings.length;i++) {
    (function(s){
        setTimeout( function(){alert(s);}, delay);
    })(strings[i]);
    delay += 1000;}


查看完整回答
反對 回復 2019-08-19
?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

您可以編寫一個單獨的函數(shù)來設置超時:

function doTimer(str, delay) {
  setTimeout(function() { alert(str); }, delay);}

然后從循環(huán)中調(diào)用它:

var delay = 1000;for(var i=0;i<strings.length;i++) {
    doTimer(strings[i], delay);
    delay += 1000;}


查看完整回答
反對 回復 2019-08-19
  • 3 回答
  • 0 關(guān)注
  • 479 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號