javascript语法题

很小的一个细节问题

先不跑浏览器端,试给出下面代码的输出,并解释。

相关代码

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);

你期待的结果是什么? 实际运行结果是什么呢?

阅读 1.2k
1 个回答

肯定是期待

"Linda"
"Linda angel"

实际是

"Linda"
"Bob angel"

因为你没有重新设置 full . full 不会因为 pre 有变化而产生变化. 应该在 set preName 里去修改 full.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题