目录
js:通过实例对象修改原型(链)上面的属性
我是在学习原型链继承的时候发现的,学习真能让人发现问题。
这里分原型对象中属性为基本数据类型和引用数据类型两种。
而引用数据类型又分为整体修改还是只是修改引用类型的属性(注意不是原型的属性,而是原型属性(引用类型)的属性,是原型中引用类型的属性。)两种。下面先分别说明,最后总结。
1 原型对象属性是基本数据类型
当原型对象的属性为基本数据类型时,通过实例对象修改原型上面的属性,并不会修改原型对象的属性,而是在该实例对象创建了一个同名属性。
//构造函数
function SuperType(age) {
this.age = age;
}
//重写构造函数的原型
SuperType.prototype = { //原型是一个对象
name: "super",
color: ["red", "blue", "yellow"],
printName: function () {
console.log(name);
}
}
//创建实例对象
let obj__1 = new SuperType(16); //实例对象1
let obj__2 = new SuperType(18); //实例对