Javascript对象中的访问器属性描述符

问题描述

let user = {
  name: "John",surname: "Smith",get fullName() {
    return `${this.name} ${this.surname}`;
  },set fullName(value) {
    [this.name,this.surname] = value.split(" ");
  }
};
user.fullName = "Alice Cooper";
for(let key in user) console.log(key);

///输出1:名称,姓氏,全名。

let user = {
  name: "John",surname: "Smith"
};

Object.defineProperty(user,'fullName',{
  get() {
    return `${this.name} ${this.surname}`;
  },set(value) {
    [this.name,this.surname] = value.split(" ");
  }
});
user.fullName = "Alice Cooper";
for(let key in user) console.log(key);

///输出:2名,姓。

我的问题是:为什么当我使用“ defineProperty”方法输出2)定义属性时,“ fullName”属性未作为用户对象的键列出,但在直接对象(输出1)?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)