【发布时间】:2013-04-19 08:31:07
【问题描述】:
我正在使用继承,我注意到有三种方法可以获得相同的结果。有什么区别?
function Animal(){
}
Animal.prototype.doThat = function() {
document.write("Doing that");
}
function Bird(){
}
// This makes doThat() visible
Bird.prototype = Object.create(Animal.prototype); // Solution 1
// You can also do:
// Bird.prototype = new Animal(); // Solution 2
// Or:
// Bird.prototype = Animal.prototype; // Solution 3
var myVar = new Bird();
myVar.doThat();
如您所见,我提出了三个解决方案。它们中的每一个都使方法 doThat() 可见。
如果我评论所有这些确实有错误。
如果我只删除其中一个,程序就可以工作。
那么...这三种解决方案的真正区别是什么?
【问题讨论】: