很小的一个细节问题
先不跑浏览器端,试给出下面代码的输出,并解释。
相关代码
let pre = 'Bob';
let full = pre + ' angel';
class Person {
construct() {}
get preName() {
console.log('preName getter!');
return pre;
}
set preName(value) {
pre = value;
console.log('preName setter!');
}
get fullName() {
console.log('fullNmae getter!');
return full;
}
set fullName(value) {
full = value;
console.log('fullName setter!');
}
}
let myName = new Person();
myName.preName = 'Linda';
console.log(myName.preName);
console.log(myName.fullName);
你期待的结果是什么? 实际运行结果是什么呢?
肯定是期待
实际是
因为你没有重新设置 full . full 不会因为 pre 有变化而产生变化. 应该在
set preName
里去修改 full.