如何使对象方法成为 IIFE?
How to make an Object method an 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);
})();
}
}
}
以上returns
Uncaught TypeError: trans.bind_toggle is not a function
是否可以在对象中使用 IIFE?如果可以,我该怎么做?
谢谢:)
我建议您将所有代码包装在一个 IIFE 中,而不是将一次性函数存储在一个对象中,然后在该函数的范围内声明一次性函数,或者像在下面的例子。这样,在 IIFE 运行 之后,它们将被适当地垃圾收集。像这样:
(function () {
(function () {
// Logig for bind_toggle
}());
// All the rest of your code
}());
将所有代码都放在 IIFE 中,您也可以避免声明大部分全局变量。如果确实需要全局,您可以将其定义为 window 的 属性,例如 window.someGlobal = 1
.
我一直在努力使一个对象方法成为一种生活,但我一点运气都没有。可能吗?我们将所有函数存储为方法,以试图使它们井井有条。
我选择了一个对象和一种方法来说明我正在尝试做的事情,尽管我们还有更多。
我想对它们进行 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);
})();
}
}
}
以上returns
Uncaught TypeError: trans.bind_toggle is not a function
是否可以在对象中使用 IIFE?如果可以,我该怎么做?
谢谢:)
我建议您将所有代码包装在一个 IIFE 中,而不是将一次性函数存储在一个对象中,然后在该函数的范围内声明一次性函数,或者像在下面的例子。这样,在 IIFE 运行 之后,它们将被适当地垃圾收集。像这样:
(function () {
(function () {
// Logig for bind_toggle
}());
// All the rest of your code
}());
将所有代码都放在 IIFE 中,您也可以避免声明大部分全局变量。如果确实需要全局,您可以将其定义为 window 的 属性,例如 window.someGlobal = 1
.