美文网首页
js继承方法之构造函数继承(apply)

js继承方法之构造函数继承(apply)

作者: Sccong | 来源:发表于2017-10-13 16:33 被阅读0次
function Animal(name){
  this.name=name
  this.say=function(){
    console.log( name + ' miao miao miao' )
  }
  this.arr= [1];//解决了原型链继承,引用属性会共享的问题
}
Animal.prototype.eat = function(food){ //无法继承prototype里的属性
  console.log(this.name + '吃' + food)
}


function Cat(name){
  Animal.apply(this,arguments)
  
}

let final = new Cat('小猫');//可以向父类传参
final.arr.push(2);
let final2 = new Cat('大猫');

console.log(final.arr) //[1,2]
console.log(final2.arr)//[1]

有个不好的地方,就是子类都有父类函数的副本(父类里this的属性),影响性能。而且也不能通过prototype共享一些共同的方法

相关文章

  • js继承方法之构造函数继承(apply)

    有个不好的地方,就是子类都有父类函数的副本(父类里this的属性),影响性能。而且也不能通过prototype共享...

  • 继承

    1.构造函数实现继承,具体:在构造函数中,使用apply()和call()方法实现继承 function Pers...

  • 浅析JS继承方法

    JS 实现继承的方法有:1.原型链继承2.构造函数继承3.组合继承(原型链继承 + 构造函数继承)4.原型式继承(...

  • js 继承

    构造函数继承 类式继承是在函数对象内调用父类的构造函数,使得自身获得父类的方法和属性。call和apply方法为类...

  • js 继承

    js继承有四种方式 1. 构造函数绑定 使用call或apply方法,将父对象的构造函数绑定在子对象上,即在子对象...

  • 2018-06-01 js模拟继承

    这篇主要讲了 构造函数实现继承 原型链实现继承 构造函数+原型链实现继承(两种) 1: call() apply(...

  • js基础之实现继承的几种方式

    js 实现继承的方式有: 原型链继承; 构造函数继承; 组合继承(原型链继承 + 构造函数继承)(最常用);(原型...

  • ES5和ES6中继承的不同之处

    1、JS中是没有继承的,不过可以通过构造函数或是原型等实现继承,ES5实现继承的方法——构造函数,当一个构造函数加...

  • 面向对象继承复习

    js基础的面向对象的继承 构造函数继承 这种方法的缺陷是只会继承构造函数上的实例属性,并不会继承原型对象上的属性,...

  • 我碰到的前端面试题(js)

    1.js实现继承有哪几种方法? 方法一:原型链继承 方法二: 构造函数继承 方法三: 组合继承 2.this指向问...

网友评论

      本文标题:js继承方法之构造函数继承(apply)

      本文链接:https://www.haomeiwen.com/subject/yzgzyxtx.html