原理:实例化父类 并对父类进行for in遍历 for in会遍历公有属性和私有属性 原理:拷贝了一份父元素的私有属性和公有属性
functionA(){this.a =100;}A.prototype.sayHi=function(){
console.log('hello word!')}functionB(){// 实例化父类 并对父类进行for in遍历 for in会遍历公有属性和私有属性 原理:拷贝了一份父元素的私有属性和公有属性var temp =newA;for(let key in temp){this[key]= temp[key]}}let b =newB;
console.log(b.a)//100
b.sayHi()// hello word!
3.借用构造函数继承
原理:将实例替换父类的this
缺点:只能继承父类的私有属性不能继承父类的公有属性
functionA(){this.a =100;}A.prototype.sayHi=function(){
console.log('hello word!')}functionB(){A.call(this)}let b =newB;
console.log(b.a)// 100
b.sayHi()//Uncaught TypeError: b.sayHi is not a function at <anonymous>:12:5