腾讯的一道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的方法

原文地址:https://www.cnblogs.com/jianjianwoshi/p/4369769.html