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