使用Object.defineProperty() 定义对象属性时,如已设置 set 或 get, 就不能设置 writable 和 value 中的任何一个了。TypeError: Invalid property descriptor. Cannot both specify accessors and a value or writable attribute, #<Object>

发布时间 2023-09-22 15:54:06作者: 勋勋的大宝贝

使用Object.defineProperty() 定义对象属性时,如已设置 set 或 get, 就不能设置 writable 和 value 中的任何一个了,不然会报如下错误。

TypeError: Invalid property descriptor. Cannot both specify accessors and a value or writable attribute, #<Object>

 

 

let obj_test = {
    name:'abc'
};

Object.defineProperty(obj_test, "age", {
    // value:18,
    // writable:true,
    enumerable:true,
    configurable:true,
    set:function(new_age){
        console.log('设置age属性...')
        num = new_age+1;
    },
    get:function(){
        console.log('读取age属性...')
        return num;
    }
})

console.log(obj_test)