最近,我遇到了用于创建具有相同属性和方法的多个对象的构造函数。
方法1:
function Person(name) {
this.name = name;
}然后您可以像这样实例化它:
var bob = new Person("bob");我想知道的是,使用标准构造函数方法与只在如下函数中返回对象之间有什么区别:
方法2:
function Person(name) {
var obj = {
name: name,
};
return obj;
}我仍然能够使用相同的函数创建多个对象。我只是有点困惑,为什么你会使用‘方法1'?是因为我可以使用prototype属性扩展第一个方法吗?我能用'Method 2‘扩展和创建更多的方法吗?
我认为这就是为什么使用构造函数是正确的,因为它们更灵活,可以添加和修改,而函数中的对象文字类型却不能?此外,它还带来了哪些其他好处?
抱歉,如果这是个愚蠢的问题。
谢谢,任何信息都会很好
发布于 2018-01-01 22:32:13
考虑:
function Person(name) { /* either of your approaches */}
Person.prototype.getName = function() {
return this.name;
}方法1将按预期工作,如果您调用:
new Person('Bob').getName ()https://stackoverflow.com/questions/48053678
复制相似问题