能否将实例命名为其构造函数名称?
var myFunc = new function myFunc(){};
?
看起来,这用新实例替换了函数对象...这意味着这是一个很好的单例。
我还没有看到任何人使用它,所以我想,它有一些我不知道的缺点......
有什么想法吗?
最佳答案
是的...
但是,您正在创建一个命名函数但从未按名称引用它,这看起来确实很奇怪。
我见过的更常见的模式是
function MyClass(){
this.val = 5;
};
MyClass.prototype.getValue = function() {
return this.val;
}
MyClass = new MyClass();
但当人们这样做时,我想知道他们为什么不直接使用文字对象
var MyClass = {
val: 5,
getValue: function() {
return this.val;
}
}
我什至更愿意在这里使用模块模式
var MyClass = (function(){
var val = 5;
return {
getValue: function() {
return val;
}
};
})();
免责声明
现在是否应该使用单例模式,这是另一个问题(如果你关心测试、依赖管理、可维护性、可读性,答案是否定的)
关于javascript - 您可以将实例命名为与其构造函数名称相同的名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043889/