繁体   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