要在Javascript中实现继承,通常执行以下2个步骤;
假设我有一个基类“动物”
var Animal = function(name){
this.name = name;
}
我现在想从中派生一个子类“Dog”。所以我会说
var Dog = function(name) {
Animal.call(this,name);
}
所以我从派生类构造函数中调用我的父类构造函数。第二步,设置原型如下;
Dog.prototype = new Animal();
现在我可以从派生类 Dog 中访问任何基本的“Animal”类属性。
所以我的问题是为什么这两个步骤是必要的?如果我们只是使用调用基类构造函数
Animal.call(this,name);
这还不足以实现继承吗?
为什么我们还需要使用设置原型属性Dog.prototype = new Animal();
?
我想了解上述两个步骤中的每一个的作用是什么?