我正在尝试定义一个对象并为其创建访问器属性

HTML:

<input type='hidden' id='crudMode' value='Create' />

JavaScript:
crudMode = {
   create: "Create",
   read: "Read",
   update: "Update",
   delete: "Delete",
   current: function () { return $('#crudMode').val(); }
}

Object.defineProperty(crudMode, 'mode', {
    get: function(){
        return this.current();
    },
    set: function(value){
        $('#crudMode').val(value);
    }
});

但是当我使用它时,它会在问题标题中引发提到的错误:
console.log(crudMode.mode);

抛出:



怎么了

最佳答案

MDC文档说,除了“get”和“set”外,调用Object.defineProperty时还需要将标志“configurable”设置为true。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty

10-08 16:40