我最近遇到了构造函数,用于创建具有相同属性和方法的多个对象。
方法1:
function Person(name) {
this.name = name;
}
然后你可以这样实例化它:
var bob = new Person("bob");
我想知道的是,使用标准构造函数方法与仅返回函数内部的对象之间存在差异:
方法2:
function Person(name) {
var obj = {
name: name,
};
return obj;
}
我仍然可以使用相同的功能创建多个对象。我对你为什么要使用'方法1'?感到有点困惑。是因为我可以使用prototype属性扩展第一个方法吗?我能够使用'方法2'?
扩展和创建更多方法我是否正确地认为这就是为什么你使用构造函数,因为它们更灵活,可以添加和修改,而函数内的Object文字类型不能?还有什么其他好处呢?
对不起,如果这是一个愚蠢的问题。
谢谢,任何信息都不错
答案 0 :(得分:1)
考虑:
function Person(name) { /* either of your approaches */}
Person.prototype.getName = function() {
return this.name;
}
方法1将按预期工作,方法2不会,如果您致电:
new Person('Bob').getName ()