1 第一种: prototype 实现:
function Person (name) {
this.name = name;
this.age = 20;
}
function Chinese () {
this.sex = "男";
}
Chinese.prototype = new Person("张三");
let ch1 = new Chinese();
console.log(ch1.name);
console.log(ch1.sex);
// 实现了继承, 内部原理 将chinese 原型 指向对象。
2 使用 call 强制改变 父类的this指向。
function Person (name,age) {
this.name = name;
this.age = age;
}
function Chinese (name, age) {
Person.call(this, name,age); //通过this调用 Person 将Person内部的thi 改成 chinese内的this
}
let che1 = new Chinese("张三", 30);
console.log(che1.name);
console.log(che1.age);
3 使用apply方法 也可以实现 将chinesethis指向 person
function Person (name,age) {
this.name = name;
this.age = age;
}
function Chinese (name, age) {
Person.apply(this, [name,age]);
let che1 = new Chinese("张三", 30);
console.log(che1.name);
console.log(che1.age);
4 使用bind方法。
function Person (name,age) {
this.name = name;
this.age = age;
}
function Chinese (name, age) {
Person.bind(this)(name,age);
}
let che1 = new Chinese("张三", 30);
console.log(che1.name);
console.log(che1.age);