1、什么是继承?
一个构造函数继承另一个构造函数中的方法; 可以省去大量的重复。
2、优缺点
优点:
创建子类实例时,可以向父类的构造器传参;
缺点:
只能继承构造器中定义的属性和方法,不能继承原型上定义的属性和方法.
3、代码
function Man(name, age) {
this.name = name;
this.age = age
}
var person = new Man('tom', 19)
console.log(person) // Man {name: "tom", age: 19}
function Woman(name, age) {
this.sex = 'woman';
// Man.call(this, name, age) // Woman {sex: "woman", name: "july", age: 20} // call适合固定参数的继承
// Man.bind(this, name, age) // Woman {sex: "woman"}
// Man.apply(this, [name, age]) // Woman {sex: "woman", name: "july", age: 20}
Man.apply(this, arguments) // Woman {sex: "woman", name: "july", age: 20} // apply适合不定参数的继承
console.log(arguments)
// this.name = name;
// this.age = age
}
var person1 = new Woman('july', 20);
console.log(person1) // Woman {sex: "woman", name: "july", age: 20}
console.log(person) // Man {name: "tom", age: 19}