【发布时间】:2012-01-15 22:59:35
【问题描述】:
我刚刚开始接触 JavaScript,我正试图围绕原型继承展开思考。似乎有多种方法可以达到相同的效果,所以我想看看是否有任何最佳实践或理由以一种方式而不是另一种方式做事。这就是我要说的:
// Method 1
function Rabbit() {
this.name = "Hoppy";
this.hop = function() {
console.log("I am hopping!");
}
}
// Method 2
function Rabbit() {}
Rabbit.prototype = {
name: "Hoppy",
hop: function() {
console.log("I am hopping!");
}
}
// Method 3
function Rabbit() {
this.name = "Hoppy";
}
Rabbit.prototype.hop = function() {
console.log("I am hopping!");
}
// Testing code (each method tested with others commented out)
var rabbit = new Rabbit();
console.log("rabbit.name = " + rabbit.name);
rabbit.hop();
所有这些似乎单独具有相同的效果(除非我遗漏了什么)。那么一种方法优于另一种方法吗?你是怎么做到的?
【问题讨论】:
标签: javascript prototypal-inheritance