Error in accessor property: can't redefine non-configurable property 'status'

我们两清 提交于 2019-12-05 12:28:47

问题


I'm trying to define an object and create an accessor property for it.

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

But when I use it, it throws the mentioned error in the question title:

console.log(crudMode.mode);

Throws:

TypeError: can't redefine non-configurable property 'mode'

What's wrong here?


回答1:


MDC documentation says that, as well as 'get' and 'set', you need a flag 'configurable' set to true when calling Object.defineProperty.

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



来源:https://stackoverflow.com/questions/6924250/error-in-accessor-property-cant-redefine-non-configurable-property-status

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!