function Son(name, age) {
// this指向子构造函数对象的实例
Father.call(this, name, age)
}
var son = new Son(‘张三‘, 18)
console.log(son) // Son {name: "张三", age: 18}
我们通过Father.call(this, name, age)传入Son中的this使Father的this指向改变成son。这样就不需要再在Son中写父类已经拥有的属性了。
而且如果子类还需要有自定义的属性,可以单独定义
function Son(name, age, score) {
// this指向子构造函数对象的实例
Father.call(this, name, age)
this.score = score
}
var son = new Son(‘张三‘, 18, 100)
console.log(son) // Son {name: "张三", age: 18, score: 100}
当需要继承父类的方法时:
Father.prototype.money = function() {
console.log(‘我要赚钱‘)
}
Son.prototype.exam = function() {
console.log(‘我要考试‘)
}
Son.prototype = new Father()
Son.prototype.constructor = Son
一定要记得改回construcotr指向!!!