gpt4 book ai didi

javascript - 将 lambda 传递给 jQuery 的 document.ready 事件的这些形式中哪一种是正确的?

转载 作者:行者123 更新时间:2023-11-29 10:39:07 25 4
gpt4 key购买 nike

我有一个名为 foo 的对象,我在其中封装了 jQuery 的 document.ready 事件的事件处理程序。

var foo = new function()
{
var OnDocumentReady = function() { ... }
}

但是,在尝试这些形式中的任何一种时,都不会调用我的事件处理程序。

$(document).ready(foo.OnDocumentReady);

$(document).ready(foo().OnDocumentReady);

$(document).ready(foo()["OnDocumentReady"]);

最佳答案

那是因为您已将 OnDocumentReady 局部范围限定为 foo 内的变量环境。您实际上需要将其附加为 foo 的属性。您可以使用 this 来做到这一点。

var foo = new function()
{
this.OnDocumentReady = function() { ... }
}

现在您的第一种方法将起作用:

$(document).ready(foo.OnDocumentReady);

其他两个将不起作用,因为使用 new function() 将构造一个对象,而不是函数。将对象作为函数调用将导致异常。

关于javascript - 将 lambda 传递给 jQuery 的 document.ready 事件的这些形式中哪一种是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32107466/

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