説明:オブジェクトのプロパティのオブジェクトの説明について。
せOBJ = {FOO:123 }。
console.log(Object.getOwnPropertyDescriptor(OBJ、 'FOO'))
結果の表示:
{ 設定:真 列挙:真 値: 123 、書き込み可能:真 __proto__:オブジェクト }
現在、4つの動作が無視ある列挙が偽の属性です。
- 以下のために...ループ内のみ:オブジェクト自体を通過し、列挙プロパティを継承しています。
- Object.keys():すべてのキー列挙プロパティのオブジェクト自体の名前を返します。使用して、このオブジェクトを通過しました!
- JSON.stringify()のみオブジェクト自体は、列挙型プロパティをシリアル化することができます。
- Object.assign():、列挙プロパティがfalseのオブジェクト自身の列挙可能プロパティのコピーだけを無視
Object.getOwnPropertyDescriptor(のObject.prototype 'のtoString')。列挙// falseに Object.getOwnPropertyDescriptor([]、 '長さ')。列挙// falseに // 用ようのtoString可算と長さのプロパティは、falseです...トラバースない両方のprototypeプロパティから継承されました。
CONST OBJ = {FOO:123、取得バー(){ リターン 'ABC' }}。 Object.getOwnPropertyDescriptors(OBJ) // {FOO: // {値:123、 // 書き込み可能:真、 // 列挙:真、 // 設定:真} // バー: // {得る:[機能:バー]、 // 設定:未定義 // 真:列挙 // 設定:真}}
// フォーマット Object.setPrototypeOf(オブジェクト、プロトタイプ) // 使用 CONST = O Object.setPrototypeOf({}、NULL ); // このメソッドは、次の関数と等価です。 関数(OBJ、プロト){ OBJ .__ proto__ = プロト; 戻りOBJ; }
例:
従って年= {}; 年OBJ = {X:10 }。 Object.setPrototypeOf(Vそう)。 proto.y = 20 。 proto.z = 40 ; obj.x // 10 ドローのボリューム// 20 obj.z // 40
-
最初の引数がオブジェクトでない場合は、自動的にオブジェクトに変換されます。最初のパラメータが返されるためしかし、その操作には何の効果もありません。
-
未定義のヌルをオブジェクトに変換することができないので、最初のパラメータが未定義またはnullである場合には、エラーになります。
4.
Object.getPrototypeOf(OBJ)。
-
-
パラメータが未定義またはnullの場合、彼らはオブジェクトに変換することができない、それはエラーになります。
5.
プロトFOO = {CONST: 'こんにちは' }; CONST OBJ = { 検索(){ 戻りsuper.foo; } }; Object.setPrototypeOf(OBJ、プロト); obj.find()// "ハロー" // 上記のコード、の間でオブジェクトOBJ方法を見つけ、プロトFOO特性super.fooプロトタイプオブジェクトへの参照によって。
内部JavaScriptエンジン、super.foo 同等Object.getPrototypeOf(この).fooという(属性)またはObject.getPrototypeOf(この).foo.call(本)(方法)。
例:
プロト= CONST { X: 'こんにちは' 、 FOO(){ にconsole.log(この.X); } }; CONST OBJ = { X: '世界' 、 FOO(){ super.foo(); } } オブジェクト.setPrototypeOf(OBJ、プロト); obj.foo()// 「世界」 // 上記のコード、プロトプロトタイプオブジェクトのsuper.foo点メソッドfooが、これはまだ出力されて、現在のオブジェクトobjに結合しました世界。
6.
VAR OBJ = {FOO 'バー'、バズ:42 }。 Object.keys(OBJ)// [ "foo"という、 "バズ"]
Object.valuesメソッドは配列を返し、オブジェクト自体のメンバーは、パラメータ(継承されない)全てのトラバース(可算)キー属性です。
CONST OBJ = {100: 'A'、2 'B'、7 'C' }。 Object.values(OBJ)// [ "B"、 "C"、 "A"]
上記のコードでは、という属性値は、数値に応じて、小から大へのトラバース配列はB、C、返すように、。
Object.entriesメソッドは配列を返し、オブジェクト自体のメンバーは、パラメータ(継承されない)全てのトラバース(可算)キー属性アレイです。
CONST OBJ = {FOO 'バー'、バズ:42 }。 Object.entries(OBJ)// [[ "foo"という、 "バー"]、[ "バズ"、42]]
戻り値に加えて、同じではなく、この方法のObject.valuesの動作は基本的に同じです。