先简单看看ES5中磨人的继承
ES5的继承有许多方式:大概分为 原型链继承,借用构造函数继承,组合继承,原型继承,寄生式继承,寄生组合式继承,我有博客专门详解过,我们这里就拉出一些经典的简单复习一下:有点迷的话请戳这里:js之各种继承
- 原型链继承
// 定义父类
function Parent(name) {
this.name = name;
}
Parent.prototype.getName = function() {
return this.name;
};
// 定义子类
function Children() {
this.age = 24;
}
// 通过Children的prototype属性和Parent进行关联继承
Children.prototype = new Parent('陈');
// Children.prototype.constructor === Parent.prototype.constructor = Parent
var test = new Children();
// test.constructor === Children.prototype.constructor === Parent
test.age // 24
test.getName(); // 陈
- 借用构造函数继承
// 定义父类
function Parent(value) {
this.language = ['javascript', 'react', 'node.js'];
this.value = value;
}
// 定义子类
function Children() {
Parent.apply(this, arguments);
}
const test = new Children(666);
test.language // ['javascript', 'react', 'node.js']
test.va