继承--(通过原型链实现)
JS是没有继承这一说法的,但是继承在C#中是十分重要的,那么我们怎么写JS代码,实现继承呢?
可以通过构造函数来实现继承,具体代码如下:
1 function Dog(name,age) { 2 this.name = name; 3 this.age = age; 4 5 //父类的prototype原型, 6 Dog.prototype.bark = function () { 7 alert( this.name + "," + this.age); 8 } 9 } 10 11 //02.继承 Dog,相当于子类 12 function SmallDog(name,age,toyName) { 13 Dog.call( this, name, age, toyName); 14 this.toyName = toyName; 15 } 16 //02.1继承父类的原型 17 SmallDog.prototype = new Dog(); 18 //02.2追加子类的自己的成员 19 SmallDog.prototype.playToy = function () { 20 alert( "我是小狗,子类,我玩的玩具" +this.toyName); 21 } 22 23 //var d1 = new Dog("xhh", 12); 24 //var d2 = new Dog("02", 12); 25 //var d3 = new Dog("03", 12); 26 ////如何判断3个dog对象里面的bark属性是否相等 27 //alert(d1.bark == d2.bark); 28 29 //d1.bark(); 30 31 var sd1 = new SmallDog("小狗1", 1, "骨头" ); 32 sd1.bark(); //子类SmallDog没有bark方法,但是父类Dog有,因此会调用父类的bark方法,执行顺序先找子类有没有bark,如果没有,再找父类,如果没有,再找object,再没有就报错 33 sd1.playToy(); //子类SmallDog有playToy方法,因此会执行