访问者属性出错:无法重新定义不可配置的属性“status” [英] Error in accessor property: can't redefine non-configurable property 'status'

查看:131
本文介绍了访问者属性出错:无法重新定义不可配置的属性“status”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

HTML:

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

JavaScript:

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

抛出:


TypeError:无法重新定义不可配置的属性'mode'

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

这里有什么问题?

推荐答案

MDC文档说,除了'get'和'set',你需要在调用Object.defineProperty时将标志'configurable'设置为true。

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

这篇关于访问者属性出错:无法重新定义不可配置的属性“status”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆