利用构造函数继承父类属性
在ES 6中,继承是通过定义两个类,然后子类用extends关键字继承父类。而在ES 6之前,只能用构造函数来代替类,在子类中利用call()方法将父类的this指向子类的this,这样就可以实现子类继承父类的属性。为了使读者更好地理解,下面我们通过代码进行演示。
1 function Father(uname, age) { // Father构造函数是父类
2 this.uname = uname;
3 this.age = age;
4 }
5 function Son(uname, age, score) { // Son构造函数是子类
6 Father.call(this, uname, age); // 子类继承父类的属性
7 this.score = score; // 子类可以拥有自己的特有属性
8 }
9 var son = new Son('张三', 18, 100);
10 console.log(son); // 输出结果:Son {uname: "张三", age: 18, score: 100}
从上述代码可以看出,使用子类创建出来的对象自动拥有了父类的属性,说明继承的效果已经实现。