javascript 用call来继承实例属性

xxx.call(thisObj, arg1,...)的调用可以改变当前函数的执行环境为传入的thisObj对象。利用这一点可以实现继承————当前的对象获得XXX的属性和方法。

例子:

function Animal(){
  this.name= 'animal';
  this.say = function(){
     alert(this.name);
  }  
}

Animal.prototype.walk = 'I can walk'; function Duck(){ Animal.call(this);
/*这样,就实现了凡是有构造函数Duck new处理的对象就会继承Animal上的属性(name)和方法(say)*/
/*但是Animal的原型上面的属性和方法不会被继承。*/
/*也就是说通过这种方法只会继承实例属性,而不能继承原型属性。*/

this.color = 'white'; } var duck = new Duck(); duck.say();//animal

  

原文地址:https://www.cnblogs.com/oxspirt/p/4543257.html