[モダンJavaScript]第16章-職業評論
2921 ワード
けいかく
JavaScriptエンジンでは、Propertyの作成時にPropertyのステータスを表すPropertyツリーを自動的にデフォルト値として定義します.propertyのステータスとは、propertyの値、値が更新可能かどうか、列可能かどうか、再定義可能かどうかです.Property Treviewは、JavaScriptエンジンによって管理される内部ステータス値です.内部スロット[Value]、[Writable]、[Enumerable]、および[Configurable].
✔ Object.getownPropertyDescriptorメソッド
Property Report情報を提供するProperty Disk Lipterオブジェクトを返します.存在しないプロセスまたは継承されたプロセスに対してpropertyディスクディスクディスクをディスク化する必要がある場合はundefinedが返されます.
データ・リソースとビジター・リソース
キーと値からなる一般的なプログラム.
それ自体は、別のデータ・プロシージャの値を読み出したり格納したりするときに呼び出されるアクセス者関数からなるプロシージャであり、値はありません.
データプロバイダレポート
const person = {
name: 'Cho'
};
console.log(Object.getOwnPropertyDescriptor(person,'name'));
// {value: "Cho", writable: true, enumerable: true, configurable: true}
アクセス者構成レポート
構成定義
property定義とは、新しいpropertyを追加するときに、propertyツリーを明確に定義するか、既存のpropertyを再定義するpropertyツリーです.Object.definePropertyメソッドを使用して、Propertyのツリー図を定義します.
デフォルト[value]definedget[Get]definedget[Set]definedset[[Set]書き込み可能[Writable]falsenumerable[[Enummerable]ダミー構成[configurable]false
✔ Object.defineProperty:一度に1つのPropertyしか定義できません.
✔ Object.≪属性の定義|Define Attribute|ldap≫:一度に複数のプロパティを定義できます.
オブジェクトの変更を防止
分割メソッドを追加Property削除Property読み込みProperty値書き込みPropertyツリー再定義オブジェクト展開禁止オブジェクトオブジェクトオブジェクトを書き込みます.prevetExtensionsXOOOオブジェクトシールオブジェクト.sealXXXOOXオブジェクトオブジェクトオブジェクトをフリーズします.freezeXXOXX
Object.preventExtensionsメソッドは拡張オブジェクトを禁止します.拡張オブジェクトの禁止は、Propertyの追加を禁止することを意味します.
Object.sealメソッドはオブジェクトを密封します.オブジェクトシールは、Propertyの追加と削除を禁止し、Propertyツリーを再定義することを意味します.つまり、シールの対象は読み書きのみとなります.
Object.freezeメソッドはオブジェクトをフリーズします.オブジェクトのフリーズは、Propertyの追加と削除、Propertyツリーの再定義、およびProperty値の更新を禁止することを意味します.つまり、フリーズされたオブジェクトは読み取り専用です.
オブジェクトのネストされたオブジェクトをフリーズして可変読み取り専用オブジェクトを実現するには、オブジェクトをすべてのプロパティに値として返します.freezeメソッドを呼び出す必要があります.
Reference
この問題について([モダンJavaScript]第16章-職業評論), 我々は、より多くの情報をここで見つけました https://velog.io/@ywc8851/모던자바스크립트-16장-프로퍼티-어트리뷰트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol