继承--(通过原型链实现)

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方法,因此会执行

 

posted @ 2013-09-28 22:12  xhhha123  阅读(225)  评论(0编辑  收藏  举报