怎样实现数与函数间的继承?
比如,现在有一个"动物"对象的构造函数,还有一个"猫"对象的构造函数。
function Animal(){ this.species = "动物"; } Animal.prototype.eat=function(){ alert('吃食物'); function Cat(name,color){ this.name = name; this.color = color; Animal.call(this); } function extend2(Child, Parent) { var p = Parent.prototype; var c = Child.prototype; for (var i in p) { c[i] = p[i]; } c.uber = p; } extend2(Cat,Animal); var cat1 = new Cat("大毛","黄色"); alert(cat1.species); // 动物 cat1.eat();//吃食物
cat函数通过call调用得到 Animal函数的属性,也通过extend2函数(把父对象的所有方法,拷贝进子对象)使得cat函数有了Animal函数的eat()的方法。