1、Object.entries()
Object.entries()はアレイを横断するキーオブジェクトとのために...で...同様の結果であってもよいが、プロトタイプの性質を通過しません
例:---入ってくるオブジェクト
CONST OBJ = {FOO 'バー'、バズ: 'ABC' }。 console.log(Object.entries(OBJ))。 // [[ 'FOO'、 'バー']、[ 'バズ'、 'ABC']]
実施例B:---受信アレイ
CONST ARR = [1、2、3 ]。 console.log(Object.entries(ARR))。 // [[ '0'、1]、[ '1'、 '2']、[ '2'、 '3']
実施例C:---入来配列を含むオブジェクト
CONST ARR1 = [{1}、2、3 ]。 console.log(Object.entries(ARR1))。 // [[ '0'、{1}]、[ '1'、 '2']、[ '2'、 '3']
Dの例:---オブジェクトのすべての受信アレイ
CONST ARR2 = [{1}、{B:2}、{C:3 }]。 console.log(Object.entries(ARR2))。 // [[ '0'、{1}]、[ '1'、{B:2}]、[ '2'、{C:3}]]
例E:---受信した文字列
CONST STR = '123' 。 console.log(Object.entries(STR))。 // [[ '0'、 '1']、[ '1'、 '2']、[ '2'、 '3']
例F:---着信数、浮動小数点数
CONST NUM = 123 。 console.log(Object.entries(NUM))。 // [] CONSTはFLOAT1 = 12.3 。 console.log(Object.entries(FLOAT1))。 // []
例G:---オブジェクトマップへ
CONST OBJ2 = {FOO 'バー'、バズ: 'ABC' }。 console.log(Object.entries(OBJ2))。 // [[ 'FOO'、 'バー']、[ 'バズ'、 'ABC']] のconstマップ= 新しい地図(Object.entries(obj2が)); console.log(マップ)// マップ{ 'FOO' => 'バー'、 'バズ' => 'ABC'}
2、Object.assig N(ターゲット、ソース1、ソース2、... )
このメソッドは、オブジェクト自体の属性継承された属性をコピーされていないソースをコピーします。
実装のObject.assign方法ではなく、深いコピーよりも、浅いコピーです。ソースオブジェクトがオブジェクトである場合には、プロパティの値であり、ターゲットオブジェクトのコピーが、オブジェクトへの参照になってしまいます。同じ名前のプロパティが置き換えられます。
コピーしたい場合はObject.assignはコピーのみ値、値を評価し、その後、コピー、値の関数です。
Object.assignは、アレイを処理するために使用することができるが、アレイは、オブジェクトとして扱われます。
{X =目標CONST:0、Y:。1 }; constのソース = {X :. 1、Z 2、のFn:{数:. 1 ;}} はconsole.log(Object.assign(ターゲット、ソース)); // ターゲット{X 1、Y: 1、Z:2、FN:{数:1}} // 同じ名前の属性が上書きされる target.fn.number = 2 ; にconsole.log(ソース)// ソース{X 1 :. 、Z:2、FN:{数:2}} // オブジェクト参照をコピー
機能人(){ この。.nameの= 1 ;} Person.prototype.country = '中国' ; VARの学生= 新しい新規人物(); student.age = 29 ; CONSTヤング = {名: '張' }; Object.assign (若い学生); // ヤング{名:「張」、年齢:29} //コピーのみ独自のプロパティ、プロトタイプをコピーすることはできません
Object.assignは([1、2、3]、[4、5]) // 処理するオブジェクトとして配列を // [4、5、3] // {0:1,1:2,2:3 } {0:4,1:5}
例:コンバインオブジェクト
VAR最初= {名称: "ボブ" }。 VAR最後= {lastNameの"スミス" }。 VaRの人= Object.assign(最初、最後)。 console.log(人)。/ * {名: 'ボブ'とLastName 'スミス'} / *
Bの例:クローン
VAR OBJ = {人: "ボブ・スミス" }; VaRのクローン= Object.assign({}、OBJ)。 console.log(クローン)。/ * {人: 'ボブ・スミス'} * / VARのテスト= NULL ; VaRの TEST1 = Object.assign({}、テスト)。 console.log(TEST1)。/ * {} * / VARの TEST2 = 未定義。 VaRの TEST4 = Object.assign({}、TEST2)。 console.log(TEST4)。/ * {} * /
3、Object.create(プロトタイプ、記述子)
VAR NEWOBJ = Object.create(ヌル、{ サイズ:{ 値: "大" 、 列挙:真 }、 形状:{ 値: "ラウンド" 、 列挙:真 } })。 document.write(newObj.size + "<BR/>"); / * 大* / のdocument.write(newObj.shape + "<BR/>"); / * ラウンド* / のdocument.write(Object.getPrototypeOf(NEWOBJ)); / * nullの* /
VaRのファーストライン= {X:未定義、Y:未定義}。 VAR secondLine = Object.create(のObject.prototype、{ X:{ 値:未定義で、 書き込み可能:真、 設定:真、 列挙:真 }、 Y:{ 値:未定義で、 書き込み可能:真、 設定:真、 列挙:真 } })。 document.write("最初の行のプロトタイプ=" + Object.getPrototypeOf(FIRSTLINE))。/ * 最初の行プロトタイプ= [対象オブジェクト])* / のdocument.write( "<BR/>" )。 document.write( "第二ラインのプロトタイプ=" + Object.getPrototypeOf(secondLine))。/ * 最初の行プロトタイプ= [対象オブジェクト] * /
4、Object.keys(OBJ)&& Object.values(OBJ)
5 、Object.freeze()&& Object.isFrozen()