オブジェクトに慣れる
5757 ワード
オブジェクトはJavaScriptの至る所にあります.オブジェクトのより多くの知識を得ること間違いなくあなたの旅のいくつかのポイントでお手伝いします.このポストでは、我々はほとんどの開発者が知っていないか、または有用ではないオブジェクトのいくつかのプロパティやメソッドを発見します.
あなたが既にオブジェクトを作成する構文に精通していることを願っています.
プロパティを作成しようとしているオブジェクト. プロパティの名前. 設定オブジェクト. 設定オブジェクトについて話しましょう.
値はキー( a )に設定したいどんな有効な値でもありえます.
書き込み可能にfalseを設定する場合.値を編集できません.
Enumerableをfalseに設定すると、
さて、オブジェクトの拡張を防ぐいくつかの組み込みメソッドを見てみましょう.
その名が示すように.オブジェクトのプロパティを設定するのを防ぎます.
この方法は
これは不変性の最高レベルです.フリーズはオブジェクトのすべての「データアクセサー」を
あなたが既にオブジェクトを作成する構文に精通していることを願っています.
let obj = { key: "value" }
しかし、我々はこれらのキーと値のカスタマイズの多くを行うことができます知っていましたか?Object.defineProperty
メソッドを使用すると、プロパティの動作を制御する権限を与えます.どのように動作するか見てみましょう.let obj = {}
Object.defineProperty( obj, "a", {
value: 1,
writable: false,
configurable: true,
enumerable: true
} )
defineProperty
は3つの引数を取ります.値
値はキー( a )に設定したいどんな有効な値でもありえます.
書くことができる
書き込み可能にfalseを設定する場合.値を編集できません.
obj.a = "new value" // Oops, not allowed.
設定可能
configurable
をtrueに設定した場合.私たちは、同じdefineProperty
の方法で、いつでも動作を変更することができますが、false
に設定する場合は、再度変更することはできません.それは一方向操作です.数え切れない
Enumerableをfalseに設定すると、
for...in
ループのような列挙では表示されません.さて、オブジェクトの拡張を防ぐいくつかの組み込みメソッドを見てみましょう.
preventextension
その名が示すように.オブジェクトのプロパティを設定するのを防ぎます.
let obj = { a: 1 };
Object.preventExtensions( obj );
obj.b = 2; // in strict mode it will throw an error.
console.log( obj.b ) // undefined
シール
この方法は
preventExtensions
と同じですが、既存のプロパティはconfigurable: false
となります.したがって、新しいプロパティを追加することはできませんし、再構成することはできません.再び一方向操作.let obj = { a: 1 };
Object.seal( obj );
obj.b = 2; // in strict mode it will throw an error.
console.log( obj.b ) // undefined
凍結
これは不変性の最高レベルです.フリーズはオブジェクトのすべての「データアクセサー」を
writable: false
としました.let obj = { a: 1 };
Object.freeze( obj );
obj.b = 2; // in strict mode it will throw an error.
console.log( obj.b ) // undefined
これらは私が役に立つと面白い方法です.いくつかの興味深い方法を知っている場合は、以下のコメントをしてください.その時まで、私はもう一つの刺激的なポストで戻ります.Reference
この問題について(オブジェクトに慣れる), 我々は、より多くの情報をここで見つけました https://dev.to/uddeshjain/getting-familiar-with-objects-9j1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol