标签:实现继承 存在 停止 构造函数 布尔 情况下 原来 UNC obj
实现方法:把父类的实例对象保存给子类的原型对象
父类的实例对象赋值给子类的原型对象,然后指回构造函数
一般情况下,对象的方法都在构造函数的原型对象中设置,通过构造函数无法继承父类方法。核心原理:
①将子类所共享的方法提取出来,让子类的prototype 原型对象= new 父类()
②本质:子类原型对象等于是实例化父类,因为父类实例化之后另外开辟空间,就不会影响原来父类原型对象
③将子类的constructor指回子类的构造函数
function Father() {
}
Father.prototype.sing = function () {
console.log('唱');
};
function Son() {
}
// 这个赋值的是地址,公用一个空间,改一个就全改
// Son.prototype = Father.prototype;
// 父类的实例对象赋值给子类的原型对象,然后指回构造函数
// 单独new一个空间给Son用{
Son.prototype = new Father();
Son.prototype.constructor = Son;
Son.prototype.dance = function () {
console.log('tiao');
};
var obj = new Son();
obj.sing();
obj.dance();
console.log(Son.prototype);
console.log(Father.prototype);
属性继承,方法继承
属性:call:把父类的this指向子类的this
方法:父类的实例对象赋值给子类的原型对象,
子类原型对象的constructor一定要指回子类的构造函数
实现继承后,让Son指回原构造函数
Son.prototype = new Father();
Son.prototype.constructor = Son;
用构造函数实现属性继承,用原型对象实现方法继承
标签:实现继承 存在 停止 构造函数 布尔 情况下 原来 UNC obj
原文地址:https://www.cnblogs.com/itxcr/p/11600081.html