ES5のオブジェクトのプロパティは、「データ属性」と「アクセサア属性」に分割できます。
データ属性は通常、データ値を保存するために使用されます。アクセター属性は操作の設定/取得に対応し、データ値を直接保存することはできません。
データ属性の特性:値、書き込み可能、列挙可能、構成可能。
説明:構成可能:true/false、属性を削除して削除できるかどうか、属性の特性を変更できるかどうか、属性をアクセサ属性に変更できるかどうか、デフォルトのfalse。
列挙可能:true/false、for in loopを介して返すことができるかどうか、デフォルトのfalse。
書き込み可能:true/false、属性の値を変更できるかどうか、デフォルトはfalseです。
値:定義されていない、プロパティの値を設定し、デフォルトの未定義。
アクセサア属性:設定、取得、列挙性、構成可能。
説明:構成可能:true/false、属性を削除して削除できるかどうか、属性の特性を変更できるかどうか、属性をアクセサ属性に変更できるかどうか、デフォルトのfalse。
列挙可能:true/false、for in loopを介して返すことができるかどうか、デフォルトのfalse。
セット:関数、プロパティ値を読み取るときに呼び出される関数。
Get:function、関数は、プロパティ値を変更するときに呼び出されます。
Object.defineProperty()またはobject.defineProperties()メソッドを使用して、オブジェクトにプロパティを追加するか、既存のプロパティのプロパティを変更します。
Object.DefineProperty(Object、PropertyName、Descriptor):
パラメーター説明:オブジェクト:属性を追加または変更する必要があるオブジェクト。
PropertyName:プロパティの名前、文字列形式。
記述子:属性の説明、データ属性またはアクセサア属性のプロパティの設定。
分析の例:
データプロパティ:
var emp = {name: 'tom'}; object.defineProperty(emp、 'name'、{writable:false}); emp.name = 'jery'; console.log(emp.name); // output tom、writableがfalseObject.defineProperty(emp、 'age'、{compentable:compeurable:false、vatiable:true:22}); 22Emp.age = 25; console.log(emp.age); // output 25に設定されています。アクセサーのプロパティ:
var emp = {_ name: 'tom'、_ age:20}; object.defineProperty(emp、 'name'、{get:function(){return this._name;}}); console.log(emp.name); // output tom、_name ovs ectom "設定されたメソッド、_Nameの値はオブジェクトを変更できません。DefineProperty(emp、 'age'、{configurable:true、get:function(){return this._age;} set:function(age){this._age = age;}}); emp.age = 25; console.log(emp.age) getメソッドを使用して_ageを読み取ることです。注:アクセサー属性は、それを保護する上で良い役割を果たすことができます。 GETメソッドのみがある場合、それは読み取り専用であり、書くことができません。それどころか、セットのみがある場合、書くことのみが読み取ることはできません。
上記は、編集者がもたらすJavaScriptデータ属性とアクセサア属性の簡単な説明です。誰もがwulin.comをもっとサポートすることを願っています〜