你并不真正需要的是新来的,下面是一个代码来实现你想实现什么是正确的方式。 此外,be really careful while using new, if used unwisely it can start clobbering your Global variable
,如果你想使用新的,约翰Resig的有如何做到这一点的正确方法,通过约翰Resig的 http://ejohn.org/blog/simple-class-instantiation/
http://jsfiddle.net/PzLKy/2/
var moduleClass = (function() {
var a =5;
return {
setA: function (inA) {
a=inA;
} ,
getA: function() {
alert(a);
}
};
})();
var instance = moduleClass;
instance.setA(8);
instance.getA();
更多阅读这篇文章一个非常好的交代编辑: contactmatt是正确的,绝对不要害怕使用构造函数,但这里有一些你需要知道的东西
来自John Resig在第一段中提到的文章,
想这是你的代码
function User(first, last){
this.name = first + " " + last;
}
var user = new User("John", "Resig");
user.name // John Resig
var user2 = User ("first","last");
user2.name //undefined, also this would pollute your current scope
如果调用构造函数,你不会得到任何形式的指示,可以是一个噩梦般的调试。
的方式来解决,这是
function User(first, last){
if (this instanceof User) {
this.name = first + " " + last;
} else
return new User(first, last);
}
得出结论,
所以,如果你觉得构造是你的问题的最好方法,使用它。但请注意,John的简单类实例化也是一种非常有用的模式,试图通过它,他还解释了泛型构造函数。
如果您想在实例化时传递参数,请使用构造函数而不是文字。 – dandavis
代码中没有涉及类的构造。你只需要用模块模式生成一个单例。你想要什么* - 只有这样我们才能告诉你代码是正确的? – Bergi
我希望能够声明新的实例并传递不同的值。 我不想做特定的事情,我只是在学习。 – Petran