gpt4 book ai didi

javascript - 如果对象包装在匿名函数中,如何在javascript中允许多个实例

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

正如 crockford 和 john resig 所提倡的,应该将对象包装在匿名函数中。但是如果一个人需要有多个实例呢?当它被包装时,只会存在一个实例(单例)。

更新:我忘了说我当然是在谈论框架的根对象(不是 jquery,而是我自己的),而不是任何对象。因为它是一个框架,所以实例的数量是未知的,由客户决定。

我猜 99.99% 的人只是使用框架而不构建自己的框架,所以如果您不知道,请不要尝试回答您自己不理解的问题 :)

最佳答案

这是[一个简单的例子]一种从直接实例化的函数创建伪命名空间(还有更多方法)的方法:

var NS = (function(){
function Person(name,gender,age){
this.name = name || '';
this.gender = gender || '';
this.age = age || 0;
}

return {
createPerson: function(n,g,a) {return new Person(n,g,a);}
};

}());

现在 NS 是伪命名空间,您可以从中创建 Person 实例,如下所示:

var pete = NS.createPerson('Pete','male',23);
alert(pete.name); //=> Pete

NS 函数中,您可以使用函数、对象、局部变量等创建一个完整的框架。在返回的对象中,您可以包含所有需要的公共(public)方法,以使其全部运行。

关于javascript - 如果对象包装在匿名函数中,如何在javascript中允许多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6484756/

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