私がこれをしたら:
var x = { };
Object.freeze( x );
x を変更する方法はありますか? ありがとう。
フリーズされたオブジェクトのプロパティ セットに対して何も追加または削除することはできません。そうしようとすると、暗黙的に、または TypeError 例外をスローすることによって失敗します (厳密モードの場合に最も一般的ですが、排他的ではありません)。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze
次のように考えることができます。
if( typeof ChuckNorris === 'undefined' ) {
ChuckNorris = Object.create( [Infinity], {
canCountTo: {
value: Infinity * 2,
writable: true,
configurable: true
}
});
Object.freeze( ChuckNorris ); // nothing can harm Chuck anymore !
}
console.log( ChuckNorris.canCountTo ); // Infinity
delete ChuckNorris.canCountTo;
console.log( ChuckNorris.canCountTo ); // Infinity
したがって、基本的には、作成後freeze
にオブジェクトwritable
とconfigurable
フラグを false に設定します。