gpt4 book ai didi

javascript - 如何使用 setTimeout 设置 this 上下文

转载 作者:行者123 更新时间:2023-11-29 20:03:05 25 4
gpt4 key购买 nike

我需要在特定上下文中执行以下函数。

setTimeout(function () {
myFunction();
}, 1000 * 60);


var changeDateFormat = function () {
console.log(this); // this should be $('.myClass')
// but I need to set it from setTimeout
// any hints
};

附言:
我正在使用 Underscore.js 和 jQuery。

最佳答案

您可以使用 jQuery.proxy .

setTimeout($.proxy(myFunction, $(".myClass")), 1000 * 60);

这是一个例子:http://jsfiddle.net/UwUQD/1/

正如 James 所说,您也可以像 jQuery 内部那样使用 apply:

proxy = function() {
return fn.apply( context, args.concat( core_slice.call( arguments ) ) );
};

第一个 apply 参数是执行上下文(您可以使用 this 访问的内容),第二个参数是您要传递给 myFunction 的其他参数. call 函数是相同的,但接受额外的参数有点不同。


或使用 bind在 Underscore.js 中

setTimeout(_.bind(myFunction, $(".myClass")), 100);

http://jsfiddle.net/UwUQD/3/

关于javascript - 如何使用 setTimeout 设置 this 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13456834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com