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