【发布时间】:2016-10-29 21:05:36
【问题描述】:
考虑以下代码:
var Animal = function(name) {
return {
name: name,
speak: function() { return "My name is " + name; }
};
};
var cat = Animal("Kitty");
我的问题是:上面的代码和下面的代码在性能、约定或最佳实践方面有什么区别:
var Animal = function(name) {
this.name = name,
this.speak = function() { return "My name is " + name; }
};
var cat = new Animal("Another Kitty");
哪一个更可取? new 关键字有哪些用例?
【问题讨论】:
-
这是一个不错的起点,可以让您的仓鼠车轮滚动:Ian Bicking - "new" only makes Javascript OO harder
-
请将您的问题限制在客观差异上。主要基于意见的问题有一个特定的离题原因,这就是您的问题在当前状态下的样子。
-
第一个创建一个普通对象,第二个创建一个
Animal实例(“继承”自Animal.prototype)。 “哪个更可取?” 取决于你问谁。有些人会不惜一切代价避免new。 -
Rafay 虽然这个问题可能会因为重复而关闭,但感谢您提出这个问题。重复也很有用,因为它们会添加新的关键字来查找相同的信息。
标签: javascript object javascript-objects