js继承的那些事
程序员文章站
2022-05-04 19:45:33
...
一、原型链继承
1. 原理示例:
通过函数的prototype属性给其原型添加属性或方法!
缺点:继承的引用类型的数据,在实例后别其他实例改变,会跟着改变.
看例子:
function SuperType() {
}
SuperType.prototype.colors = ["red", "blue", "green"];
var instance1 = new SuperType();
instance1.colors.push("black");
console.log(instance1.colors); //[ 'red', 'blue', 'green', 'black' ]
var instance2 = new SuperType();
console.log(instance2.colors); //[ 'red', 'blue', 'green', 'black' ]
二、借用构造函数
理解:解决原型链继承中对原型中引用数据类型的误删改
特点:把父类私有的属性和方法,克隆一份一样的给子类私有的属性,Father执行的时候,把Father的中的this换成Son的实例,由于并不是new Father,所以Father.prototype上的属性无关.
function SuperType() {
colors.call(this)
}
function colors() {
this.colors = ["red", "blue", "green"]
}
var instance1 = new SuperType();
instance1.colors.push("black");
console.log(instance1.colors); //[ 'red', 'blue', 'green', 'black' ]
var instance2 = new SuperType();
console.log(instance2.colors); //[ 'red', 'blue', 'green']
后期会把其他js继承方式详细 一 一 介绍,未完待续…(每天一更)
上一篇: python:多继承中的‘‘那些事‘‘
下一篇: Qt使用FILE加载文件时程序闪退