function Person(name) {
this.name = name;
return this;
}
var someone = new Person('someone');
console.log(someone.name);
var someoneelse = Person('someoneelse');
console.log(someoneelse.name);这是一个实现构造函数(类)的好模式。无论是使用new还是不使用new,这都可以很好地工作。
更新:我想我得到了我想要的答案。在不使用'new‘的情况下使用它将返回一个全局对象和一个非常糟糕的想法(这要归功于Vohuman的评论:“不使用new,构造函数中的this是全局对象,而不是构造函数的实例”)
更多更新:以正确的方式处理新的和没有新的,
function Person(name) {
if (this instanceof Person) {
this.name = name;
}
else {
return new Person(name);
}
};https://stackoverflow.com/questions/38287906
复制相似问题