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

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

如何將參數(shù)傳遞給setTimeout()回調(diào)?

如何將參數(shù)傳遞給setTimeout()回調(diào)?

慕村225694 2019-06-09 17:47:53
如何將參數(shù)傳遞給setTimeout()回調(diào)?我有一些JavaScript代碼,如下所示:function statechangedPostQuestion(){   //alert("statechangedPostQuestion");   if (xmlhttp.readyState==4)   {     var topicId = xmlhttp.responseText;     setTimeout("postinsql(topicId)",4000);   }}function postinsql(topicId){   //alert(topicId);}我發(fā)現(xiàn)一個錯誤topicId在我使用setTimeout()功能。我要我的postinsql(topicId)函數(shù)將在一段時間后被調(diào)用。我該怎么辦?
查看完整描述

3 回答

?
料青山看我應(yīng)如是

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

setTimeout(function() {
    postinsql(topicId);}, 4000)

您需要將匿名函數(shù)作為參數(shù),而不是字符串,后一種方法甚至不應(yīng)該按照ECMAScript規(guī)范工作,但瀏覽器只是比較寬松。這是正確的解決方案,在使用setTimeout()setInterval(),它比較慢,因為必須對其進行評估,而且它是不正確的。

最新情況:

正如霍布林在他對這個問題的評論中所說的,現(xiàn)在您可以將參數(shù)傳遞給setTimeout中的函數(shù),使用Function.prototype.bind()

例子:

setTimeout(postinsql.bind(null, topicId), 4000);


查看完整回答
反對 回復(fù) 2019-06-09
?
有只小跳蛙

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

在現(xiàn)代瀏覽器中,“setTimeout”接收作為參數(shù)發(fā)送給計時器末尾的內(nèi)部函數(shù)的第三個參數(shù)。

例子:


var hello = "Hello World"; setTimeout(alert, 1000, hello);


查看完整回答
反對 回復(fù) 2019-06-09
?
偶然的你

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

在進行了一些研究和測試之后,唯一正確的實現(xiàn)是:

setTimeout(yourFunctionReference, 4000, param1, param2, paramN);

setTimeout將把所有額外的參數(shù)傳遞給您的函數(shù),以便在那里處理它們。

匿名函數(shù)可以用于非常基本的內(nèi)容,但是在必須使用“this”的對象實例中,沒有辦法使其工作。任何匿名函數(shù)都會將“this”更改為指向窗口,因此您將丟失對象引用。


查看完整回答
反對 回復(fù) 2019-06-09
  • 3 回答
  • 0 關(guān)注
  • 979 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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