分配合适的“这个”; setTimeout(f, t) 中的值

发布于 2024-11-29 21:41:42 字数 54 浏览 1 评论 0原文

有没有办法调用 setTimeout(f, t) 以便为 f 分配一个自己选择的“this”?

Is there a way to call setTimeout(f, t) such that f is assigned a 'this' of one's choice?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感情旳空白 2024-12-06 21:41:42

我认为这是一个 Javascript 问题。我不知道您可以使用本机 setTimeout 来做到这一点,并且(显然像您一样)我找不到任何表明您可以这样做的文档。但你当然可以推出一个这样做的:

var setTimeoutEx = function(f, t, theThis){
    return setTimeout(function(){
        return f.apply(theThis, arguments);
    }, t);
};

编辑:可能你只需使用 Function.bind 来重新绑定 f 中的 this

根据喜好,您甚至可以在相关范围内重新定义 setTimeout;不过,我可能不会,因为这可能会打破读者的假设。

I take it this is a Javascript question. I don't know that you can do that using the native setTimeout, and (apparently like you) I couldn't find any documentation indicating that you can. But you can certainly roll one that does:

var setTimeoutEx = function(f, t, theThis){
    return setTimeout(function(){
        return f.apply(theThis, arguments);
    }, t);
};

EDIT: possibly you would just use Function.bind to rebind this in f.

Depending on taste you might even redefine setTimeout in the relevant scope; I probably wouldn't, though, as it may break readers' assumptions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文