美文网首页
js继承方式

js继承方式

作者: JosephScript | 来源:发表于2021-05-10 16:33 被阅读0次

1、原型链继承

function One (){
  this.number = 1
  this.arr = ['A']
}

Son.prototype = new One()

function Son(){

}

const son1 = new Son()
const son2 = new Son()

son1.number = 2
son1.arr.push('B')

console.log(son1.number) // 2
console.log(son2.arr) // [ 'A', 'B' ]

console.log(son2.number) // 1
console.log(son2.arr) // [ 'A', 'B' ]

缺点:复合类型数据改变会影响所有子函数
2、构造函数继承

function One (){
  this.arr = ['A']
  this.fn = function(){
    // ...
  }
}
function Son(){
  One.call(this)
}

const son1 = new Son()
const son2 = new Son()

son1.arr.push('B')

console.log(son1.arr) // [ 'A', 'B' ]
console.log(son2.arr) // [ 'A' ]
console.log(son1.fn === son2.fn) // false

缺点:如果属性有公用函数,重复多了会浪费内存
3、组合继承
顾名思义,也就是以上两种方式的综合

function One(){
  this.number = 1
  this.arr = []
}

One.prototype.fn = function(){
  // ...
}

function Two(){
  One.call(this)
}

const son1 = new Two()
const son2 = new Two()

son1.number ++
son1.arr.push(1)

console.log({...son1})
console.log({...son2})

相关文章

  • js 的继承的几种方式

    js 继承有6种方式的代码。 js继承的6种方式[https://www.cnblogs.com/Grace-zy...

  • js继承方式

    类式继承 构造函数继承 组合继承 类式继承 + 构造函数继承 原型式继承 寄生式继承 寄生组合式继承 寄生式继承 ...

  • JS继承方式

    js继承有多种继承方式,但最常用的是组合模式,代码例子如下 在这种方式下,把实例函数都保存在原型对象上,这样可...

  • js继承方式

    实现继承有两种常见方式: 混合式继承 最简单的继承就是将别的对象的属性强加到我身上,那么我就有这个成员了。 混合式...

  • js继承方式

    //Object.create(proObj)创建一个新的对象,但是还要把proObj作为这个对象的原型 //...

  • js继承方式

    1、原型链继承 缺点:复合类型数据改变会影响所有子函数2、构造函数继承 缺点:如果属性有公用函数,重复多了会浪费内...

  • js继承方式

    原型链继承 打印结果如下: 上面定义了一个 Parent 类并传了一个 name 值,而且在 Parent 的原型...

  • JS继承

    JS中的继承 许多OO语言都支持两种继承方式:接口继承和实现继承; 因为JS中没有类和接口的概念 , 所以JS不支...

  • 继承

    研究学习了js内部的继承方式,以及多种方式的优点和缺点 目前项目中的 以前项目中的 js中继承有多种方式 原型继承...

  • #js继承

    js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承)类式继承(构造函数间的继承) 类式继承是...

网友评论

      本文标题:js继承方式

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