[英]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.