Class 的取值函数(getter)和存值函数(setter),写了一段测试代码:
let str = 'nihao';
class MyClass {
constructor() {
}
get prop() {
return str ;
}
set prop(value) {
str = value;
}
}
class ParentClas extends MyClass{
constructor(){
super();
this.prop='haha';
}
}
let parentClass=new ParentClas();
console.log('parentClass.prop',parentClass.prop);
parentClass.prop="heihei";
console.log('parentClass.prop',parentClass.prop);
console.log("str",str);
运行结果为:
按照我的理解,parentClass对象有了自己的prop属性,
parentClass.prop的访问结果是haha,没有问题
但是parentClass.prop="heihei";以后,修改的应该是parentClass对象自身的prop属性,parentClass.prop属性为heihei,也没有问题,但是为什么str变量竟然也是heihei了,按道理,不应该访问到MyClass原型链呀。