gpt4 book ai didi

javascript - 如何使对象方法成为 IIFE?

转载 作者:行者123 更新时间:2023-12-01 01:31:07 25 4
gpt4 key购买 nike

我一直在尝试使对象方法成为 iife,但我一点运气都没有。是否可以?我们将所有函数存储为方法,以保持它们的组织性。

我选择了一个对象和一种方法来说明我正在尝试做的事情,尽管我们还有更多。

我想 IIFe-fy 他们,因为一旦他们最初开火,他们就完成了自己的工作,不再需要了,考虑到这一点以及我们将拥有多少方法,对我来说,这使得生活化他们。

我的代码是:

let trans = {
bind_toggle: function(){
if ($('.tw-o').length != 0) {
// window open, add toggle
$('.tw-h').click(function(e){
$('.tw-b').toggle(599);
});
}
}
}

我希望调用 trans.bind_toggle 而不必自己调用它......一个 IIFE,但我无法实现它。我试过:

let trans = {
bind_toggle: (function(){
if ($('.tw-o').length != 0) {
// window open, add toggle
$('.tw-h').click(function(e){
$('.tw-b').toggle(599);
})();
}
}
}

以上返回

Uncaught TypeError: trans.bind_toggle is not a function

是否可以在对象中使用 IIFE?如果是这样,我该怎么做?

谢谢:)

最佳答案

我建议您将所有代码包装在 IIFE 中,然后在该函数的范围内声明一次性定时器,或者像示例中那样将它们设为 IIFE,而不是将一次性函数存储在对象中以下。这样,它们将在 IIFE 运行后被正确地垃圾收集。像这样的事情:

(function () {
(function () {
// Logig for bind_toggle
}());
// All the rest of your code
}());

将所有代码放在 IIFE 中,您也可以避免声明大多数全局变量。如果确实需要全局变量,可以将其定义为 window 的属性,如 window.someGlobal = 1

关于javascript - 如何使对象方法成为 IIFE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53265924/

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