簡體   English   中英

在函數上執行setTimeout的問題-將其作為參數傳遞

[英]Issues with executing setTimeout on a function - passing this as a parameter

嗨,大家好我有一個接受函數this作為一個參數- “ this ”指哪點擊時要運行的函數的DOM元素。 關鍵是我希望在一個小的延遲后調用此函數,但是傳遞變量項this不起作用,因為執行該函數時,“ this ”不引用傳入參數的對象,而是引用該對象。窗口對象。

我該怎么做?

您可以捕獲this

var t = this;
window.setTimeout(function() {
    // use the t variable here
}, 2000);

PrototypeJS將bind()方法添加到Function.prototype中 此方法使您可以將函數和參數綁定到特定對象的上下文。 只是,

window.setTimeout((function() {
    alert(this);
}).bind(this), 2000);

最棒的是,此方法現在已成為ECMA-262規范的一部分,該規范基於JavaScript,並且本機實現已在現代瀏覽器中推廣。 PrototypeJS僅在尚未實現時添加此方法。

我已經在http://jsfiddle.net/rLpbx/建立了一個示例腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM