腾讯的一道js面试题(原型)

  有一只小狗叫花花,它会“汪汪”叫,他的同伴也会汪汪叫,后来环境发生了变化,新出生的狗不会再“汪汪”叫,而变成“呜呜”叫。

试通过继承来达到目的

 

 1          function Dog(){
 2  2                 this.bark = function(){
 3  3                     alert("汪汪");
 4  4                 }
 5  5             }
 6  6             var huahua = new Dog();
 7  7             huahua.bark();//huahua会汪汪叫
 8  8             
 9  9             function Yellowdog(){
10 10                 this.eat = function(){
11 11                     alert("我会看家");
12 12                 }
13 13             }
14 14             Yellowdog.prototype =new Dog();
15 15             var  yellowdog = new Yellowdog();
16 16             yellowdog.bark();//同伴yellowdog也会汪汪叫
17 17             直接改原型对象的属性
18 18             Yellowdog.prototype.bark = function(){    alert("呜呜");};
19 19             var    newdog = new Yellowdog();
20 20             newdog.bark();//新出生的狗只能呜呜叫

14行yellow.bark()是继承Dog也就是原型对象

18行直接改写原型对象的方法即改写Dog的方法

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。