gpt4 book ai didi

javascript - 使用闭包和 IIF 创建对象实例

转载 作者:行者123 更新时间:2023-12-02 16:19:41 24 4
gpt4 key购买 nike

我正在尝试学习创建对象和对象实例的最佳实践。我理解的一种方法是使用闭包返回一个全部包装为 IIF 的对象:

myApp2 = (function() {
var count = 1;
return {
getCount: function(){return count},
incCount: function(){count++}
};
}())

var test = myApp2
console.log(test.getCount()); // outputs 1
console.log(test.incCount()); // increment count by 1
console.log(test.getCount()); // outputs 2
var test2 = myApp2 // I thought this would create new context
console.log(test2.getCount());// outputs 2, not 1 as expected

请纠正我的理解..

最佳答案

如果你想拥有不同的对象,你可以使用函数而不是 IIFE,并为每个对象调用一次:

function myApp2 () {
var count = 1;
return {
getCount: function(){return count},
incCount: function(){count++}
};
}
var test = myApp2();
console.log(test.getCount()); // outputs 1
console.log(test.incCount()); // increment count by 1
console.log(test.getCount()); // outputs 2
var test2 = myApp2(); // creates new object
console.log(test2.getCount());// outputs 1

关于javascript - 使用闭包和 IIF 创建对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240412/

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