首页 > 解决方案 > JavaScript 得到设置。变更集

问题描述

为什么不设置名字?错误在哪里?

const person = {
    firstName: "Yasar",
    lastName: "KEMAL",

}

Object.defineProperty(person, "fullName", { 
    get function() { //get sadece okuduğu için kısa kod.
        return this.firstName + " " + this.lastName
    },
    set function(value) { //change name set error
        const parts = value.split(' ');
        this.firstName = parts[0];
        this.lastName = parts[1];
    }
})

Object.defineProperty(person, "age", { 
        value: 50,
        writable: true 
    })

person.age = 60;
person.fullName = "Kemalettin TUĞCU" //send name set error

console.log(person);

标签: javascriptgetset

解决方案


如果要查看添加了 的属性Object.defineProperty,则必须将这些属性标记为可枚举。

阅读更多关于Object.defineProperty()这里。

let person = {
    firstName: "Yasar",
    lastName: "KEMAL"
};

Object.defineProperty(person, 'fullName', {
  get() {
    return this.firstName + " "  + this.lastName;
  },
  set(value) {
    [this.firstName, this.lastName] = value.split(" ");
  },
  enumerable:true
});

Object.defineProperty(person, "age", { 
        value: 50,
        writable: true,
        enumerable:true
});

person.age = 60;
person.fullName = "Kemalettin TUĞCU"; //send name set error

console.log(person);


推荐阅读