js类的构造函数继承:
1 apply方法:
function Cat(name,color){
Animal.apply(this, arguments);
this.name = name;
this.color = color;
}
2 prototype
Cat.prototype = new Animal();
Cat.prototype.constructor = Cat;
var cat1 = new Cat("大毛","黄色");
alert(cat1.species); // 动物
//把Cat的皮肉totype赋值给Animal,再把Cat.prototype.constructor赋值给Cat
3 prototype直接等于父类的prototype
function Animal(){ }
Animal.prototype.species = "动物";
Cat.prototype = Animal.prototype;
Cat.prototype.constructor = Cat;
var cat1 = new Cat("大毛","黄色");
alert(cat1.species); // 动物
// 缺点,Cat的prototype和Animal的占用同一块内存空间,修改一个其它也会被修改
// 可以在其中新生成一个空的函数,作为中继
var F = function(){};
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.uber = Parent.prototype;
4 直接把父类的元素拷贝到子类里
var p = Parent.prototype;
var c = Child.prototype;
for (var i in p) {
c[i] = p[i];
}
c.uber = p;