Skip to content

[JS]继承学习

原型链继承

原型链继承就是利用原型, 使类型A继承类型B的属性和方法

javascript
function SuperN () {
    this.name = 'super_n'
    this.books = ['js', 'css', 'node']
}
SuperN.prototype.getName = function () {
    console.log(this.name)
}

function SubN () {
    this.name = 'sub_n'
}
SubN.prototype = new SuperN()

var sub_n_1 = new SubN()
var sub_n_2 = new SubN()

sub_n_1.name = 'sub_n_1'
log(sub_n_1.name) // sub_n_1

缺点:

  • 通过原型来实现继承时, 原型会变成另一个类型的实例, 另一个类型的实例属性变成了它的原型属性, 该原型的引用属性会共享给所有实例
  • 在构造子类实例的时候, 不能给构造函数添加额外的参数, 它会共享给所有的子类实例

MIT License.