オブジェクトの組み合わせの特性Object.assign複数のオブジェクトは、同じ名前の属性、フロントカバーの後ろにオブジェクトの値を有する場合。

 

 

 

 

Object.assign()メソッドは、すべての属性値がターゲット・オブジェクトに1つ以上のソースオブジェクトからコピーされ列挙するために使用されます。これは、ターゲットオブジェクトに戻ります。


<SCRIPT> 
	CONST = {標的:. 1、B:2}; 
	CONST = {Bソース:. 4、C :. 5}; 

	CONST = returnedTarget Object.assign(ターゲット、ソース)

	はconsole.log(ターゲット); 
	//出力期待:オブジェクト{A :. 1、B :. 4、C :. 5} 

	にconsole.log(returnedTarget); 
	//出力が期待:オブジェクト{A :. 1、B :. 4、C :. 5} 
</ SCRIPT> 




構文
オブジェクト。アサイン(ターゲット、...源)

パラメータ

ターゲットオーディエンス。

ソースソースオブジェクト。

ターゲットオブジェクトの値を返します。

説明
同じキーを持つターゲットオブジェクトのプロパティは、属性はソースオブジェクトのプロパティで覆われている場合。ソースオブジェクトのプロパティは、同様にソースオブジェクトのプロパティの正面の後ろにカバーします。

Object.assign方法は、単にソースをコピーして、オブジェクト自体は、ターゲット・オブジェクトに属性を列挙することができます。それは[[取得]およびターゲットオブジェクト[[設定]]ソースオブジェクトを使用するために、関連するgetterおよびsetterメソッドを呼び出しますので。したがって、それだけでコピーしたり、新しい属性を定義するのではなく、属性が割り当てられています。マージソースがゲッターが含まれている場合、プロトタイプに組み込まれた新しいプロパティのために、それは適さない可能性があります。プロトタイプに(の列挙を含んでいてもよい)属性を定義するために、Object.getOwnPropertyDescriptor()とObject.defineProperty()を使用します。

文字列型とプロパティのシンボルの種類がコピーされます。

プロパティが書き込み、TypeError例外を引き起こす可能性がありますすることができない場合はいずれかのエラーが発生する前にプロパティを追加した場合、エラーの場合には、例えば、、、あなたはターゲットオブジェクトを変更することができます。

注、Object.assignは、ソースオブジェクトがnullまたは未定義の時間であることで、エラーをスローしません。


引用します。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

  

 

 

 

 

ここでは、参照ライブラリできjQuery.jsでなければなりません

$ .extend()複数のオブジェクトをマージし、オブジェクトのプロパティは、前方物体属性の背後に覆わ
/ * $。拡張(ターゲット【、物体1] [、ObjectN])
$ .extend([ディープ]、ターゲット、物体1 [、ObjectN])

ディープオプション。ブール型のデフォルトはfalseで、オブジェクトは、合併の深さであるかどうかを示します。trueの場合、同じ名前のプロパティと複数のオブジェクトは、オブジェクトされ、プロパティの「オブジェクト」マージされます。
ターゲット・オブジェクト・タイプの聴衆メンバは、オブジェクトに取り付けられるように他のオブジェクトの属性。
オブジェクト1オプション。マージされる最初のオブジェクトのオブジェクトタイプ。
objectNオプション。オブジェクトタイプN番目のオブジェクトがマージされます。* / 

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
<METAのcharset = "UTF-8"> 
<タイトル>初心者チュートリアル(runoob.com)</ TITLE> 
<SCRIPT SRC =「HTTPS://cdn.staticfile。 ORG / jQueryの/ 1.10.2 / jquery.min.js "> </ SCRIPT> 
</ HEAD> 
<BODY> 
 
<DIV ID ="ログ「> </ div> 
<スクリプト>
		バナナ:{体重:52、価格:100}、
		チェリー:97 
	}。
	VARオブジェクト2 = { 
		バナナ:{価格:200}、
		ドリアン:100 
	}。
	/ * object2は合并到オブジェクト1中* / 
	$ .extend(オブジェクト1、オブジェクト2)。
	VAR printObj = typeofをJSON!= "未定義"?JSON.stringify:関数(OBJ){ 
		VAR ARR = []; 
		$ .each(OBJ、関数(キー、ヴァル){ 
			次VAR =キー+ ":"; 次+ = $ .isPlainObject(ヴァル)printObj(ヴァル):valを、
			次arr.push(); 
		}); 
		リターン"{" + arr.join( " ")+"}"。
	}。
	$( "#ログ")アペンド(printObj(オブジェクト1))。
})
</ SCRIPT> 
 
</ body> 
</ HTML>

  

おすすめ

転載: www.cnblogs.com/Knowledge-is-infinite/p/12093212.html