14

オブジェクトを定義し、そのアクセサ プロパティを作成しようとしています。

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

スロー:

TypeError: 構成不可能なプロパティ 'mode' を再定義できません

ここで何が問題なのですか?

4

1 に答える 1

20

MDC のドキュメントによると、Object.defineProperty を呼び出すときは、'get' と 'set' だけでなく、'configurable' フラグを true に設定する必要があります。

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

于 2011-08-03T12:09:39.863 に答える