カタログを読みます
- Object.assign(ターゲット、source_1、?????) //すべて列挙型属性のコピー元のオブジェクトのターゲットオブジェクトへ
- Object.is(値1、値2)(オブジェクト、記述子) //二つの値が厳密に等しいかどうかを比較するために使用され、(===)実質的に類似の
- Object.setPrototypeOf(オブジェクト) //同じ__proto__、オブジェクトプロトタイプオブジェクトを設定します
- Object.getPrototypeOf(オブジェクト)のプロトタイプオブジェクトを読み取るための//オブジェクト
Object.assign(ターゲット、source_1、···)
概念:対象物(ターゲット)にコピーされ、すべての列挙属性のオブジェクトをマージするための方法であって、ソースオブジェクト(ソース)
特徴:、プロパティおよびメソッドを追加するクローン対象として複数のオブジェクトをマージし、プロパティのデフォルト値を指定します
ケース:
VaRの sourceObj1 = { 名: "ASSIGN" } VAR sourceObj2 = { 年齢: "18は" } VARの目標= {}; Object.assign(ターゲット、sourceObj1、sourceObj2) にconsole.log(ターゲット); // {名「 ASSIGN「年齢」18である『とは} // 属性が以前の属性上書きした後、ターゲット・オブジェクトをソース・オブジェクトは、同じ名前の属性、または同じname属性のソースオブジェクトを複数有している VaRの sourceObj3 = { :名 ASSIGN1"』 } VARのターゲット2を= {}; Object.assign(ターゲット2、sourceObj1、sourceObj3) にconsole.log(ターゲット2); // {名: "ASSIGN1"、年齢"18が"} //ソースオブジェクトは、文字列が何も効果が属性を列挙コピーず、ブール値であろうある VAR sourceString = "ASSIGN"のが、 のvar = TARGET2 {}; (sourceStringのTARGET2、Object.assign trueに、18である) にconsole.log (TARGET2); // {0: "" ,. 1: "S"、2 "S" ,. 3: "I" ,. 4: "G" ,. 5: "N-"} // 文字列のみ包装オブジェクトは、実際の列挙定義済み属性を生成し、それらの属性は、[[primitiveValue] Object.assignコピーされないコピーされ 、はconsole.log(sourceStringのオブジェクト())// 「」,. 1:{0 : "S"、2 "S" ,. 3: "I" ,. 4: "G" ,. 5: "N-"、長さ:. 6、[primitiveValue]:ASSIGN} // オブジェクト。ソースオブジェクトのコピー自体の属性のみ、限定されるコピーされた属性を割り当てる、列挙属性コピー、コピープロパティの継承されていないない のvar target3 = {}; Object.assign(target3を、 Object.defineProperty({}、'名前' 、{ 列挙:falseに、 値: 'ハロー' })、 Object.defineProperty({}、 '年齢' 、{ 列挙:trueに、 値: 18である }) ) にconsole.log(target3); // {年齢:18}である // Object.assign浅いコピー方法はなくディープコピーより、実施される // ソースオブジェクトのプロパティの値がオブジェクトである場合には、対象物の得られたコピーは、オブジェクトへの参照である VaRの target4 = {}; sourceObj4 {名前= {値: "ASSIGN" }}; Object.assign(target4、sourceObj4); sourceObj4.name.age = 18である; にconsole.log(target4)。// {名:{値: "割り当てる"、年齢:18}}。 </ SCRIPT>
Object.is(値1、値2)(オブジェクト記述子)
概念:二つの値が同じ値であるか否かを決定します
ケース:
Object.is(ウィンドウ、ウィンドウ)。// 真 Object.is({名: "ある"}、{名: "あります"})。// 偽 Object.is([]、[])。// 偽 Object.is(未定義、未定義)。// 真 Object.is(ヌル、ヌル); Object.is( 0、-0)。 // 偽 Object.is(-0、-0)。 // 真 Object.is(NaNで、0/0)。// 真
Object.setPrototypeOf(オブジェクト)
概念:[[プロトタイプ]組み込みオブジェクトのプロパティを変更します
注:このメソッドは、パフォーマンスに影響を与え、使用を避け、代わりにObject.createを用いてもよいです
VAR OBJ = {}; VARの OBJ1 = {名: "setPrototypeOf" }; Object.setPrototypeOf(OBJ、OBJ1) はconsole.log(obj.name); // "setPrototypeOf" // アナログ新しいコマンド VAR F. = 関数( ){}; VARの F = Object.setPrototypeOf({}、F.prototype); F.call(F); // 等価 するvar F = 新しい新 F()。
Object.getPrototypeOf(オブジェクト)
コンセプト:パラメータオブジェクトのプロトタイプを返します。
ケース:
VAR F. = 関数(){}; // コンストラクタ するvar F = 新しい新F(); Object.getPrototypeOf(F) === F.prototype // trueに // 空のオブジェクトプロトタイプのObject.prototype Object.getPrototypeOf( {})===のObject.prototype // trueに // のObject.prototypeプロトタイプがnull Object.getPrototypeOf(のObject.prototype)=== NULL // trueに // 関数プロトタイプはFunction.prototypeのある 関数F(){ } Object.getPrototypeOf(F) === Function.prototype // trueに