JavaScript中的继承方法
JavaScript中的对象在创建的时刻,会生成一个原型,原型是该对象的公共祖先,对象可以从原型中获取自身没有的属性;JavaScript这样的规定,使我们在实际开发中更好的使用对象,简化代码的重复性,以及方便构建模块化开发;
有三种方法可以实现继承,他们分别代表了继承的发展阶段;
1.传统的继承方式,是使用原型链的方式来实现的;
Grand.prototype.lastName = 'liu';
function Grand() {
name : 'xiaoming';
age : 75;
}
var grand = new Grand();
Father.prototype = grand;
function Father() {
age : 40;
}
var father = new Father();
Son.prototype = father;
function Son() {
}
var son = new Son();
在控制台中打印son.lastName;会把liu打印出来,说明son继承了来自Grand.prototype.lastName上的原型;
2.借用构造函数来继承 主要是利用call和apply来改变this;
用call和apply不是标准的继承模式;因此存在两个弊端:不能继承借用构造函数的原型,每次构造函数都要多走一圈浪费效率;
其代码实现如下:
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
function Student(name, age, sex, grade) {
Person.call(this, name, age, sex);
this.grade = grade;
}
var student = new Student();
var student = new Student('james', 18, 'male', 3);
然后在控制台中查入student,则打印出对象的name、age、 sex 说明student从Person中继承到了相关的属性;
3.