【发布时间】:2015-06-06 20:59:55
【问题描述】:
function Person(age,name){
this.name = name;
this.age = age;
this.speak = function(){...}
}
function Person(age,name){
var p = {}
p.name = name;
p.age = age;
p.speak = function(){...}
return p;
}
我看到的唯一区别是,使用第一个你必须调用 new 让语言知道它构造一个新对象,它本质上只是构造一个对象,其中“this”指的是正在创建的新对象?
即与这样做相同。
{
age: 12,
name: "mark",
speak: function(){...}
}
第二个返回一个对象,所以你可以写
Person(12,"mark")
而不是
new Person(12,"mark")
所以我想我的问题是,使用第二个版本有什么问题吗?我所说的差异是否正确?它们是两者之间的唯一差异吗?
【问题讨论】:
-
@Qantas94Heavy - 这个问题是在问一些其他问题中没有问或回答的问题。在我看来,这不是一个纯粹的重复,尽管显然相关。
标签: javascript object constructor