ES6 における Object.assign() の使い方の詳細な説明

ES6 における Object.assign() の使い方の詳細な説明

メソッド: Object.assign()
機能: ソース オブジェクトの値をターゲット オブジェクトに割り当てます。両方のオブジェクトの値が上書きされ、ターゲット オブジェクトの値は保持され、ソース オブジェクトの値が追加されます。
方向

Object.assign メソッドは、ディープ コピーではなく、シャロー コピーを実行します。つまり、ソース オブジェクトのプロパティの値がオブジェクトの場合、ターゲット オブジェクトはこのオブジェクトへの参照をコピーします。

var object1 = { a: { b: 1 } };

オブジェクト2 = Object.assign({}, オブジェクト1);

オブジェクト1.ab = 2;

コンソールにログ出力します。

2. 目的

2.1 オブジェクトにプロパティを追加する

2.2 オブジェクトへのメソッドの追加

2.3 オブジェクトの複製

関数 copyFnc(origin) {

Object.assign({}, origin) を返します。

var sur = { a: 1, b: 2 };

console.log(copyFnc(sur));

上記のコードは、元のオブジェクトを空のオブジェクトにコピーし、元のオブジェクトのクローンを取得します。

ただし、このメソッドを使用してクローンを作成すると、元のオブジェクト自体の値のみがクローン化され、継承された値はクローン化されません。継承チェーンを維持したい場合は、次のコードを使用できます。

関数クローン(origin) {

originProto = Object.getPrototypeOf(origin); とします。

Object.assign(Object.create(originProto), origin) を返します。

}

JS では、サブクラスは Object.getPrototypeOf を使用して親クラスのメソッドを呼び出し、オブジェクトのプロトタイプを取得します。

2.4 複数のオブジェクトの結合

//複数のオブジェクトを1つのオブジェクトにマージする

const merge = (target, ...sources) => Object.assign(target, ...sources);

//複数のオブジェクトを新しいオブジェクトにマージする

const merge = (...sources) => Object.assign({}, ...sources);

2.5 プロパティのデフォルト値の指定

const デフォルト = {
ログレベル: 0,
出力フォーマット: 'html'};
関数 processContent(options) {let options = Object.assign({}, DEFAULTS, options);
}

ES6 Object.assign() の使い方と目的についてはこれで終わりです。ES6 Object.assign() の使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • ES6 Object.assign() の使い方と使用法
  • ES6 の新しい Object.assign() メソッドの詳細な説明

<<:  Vue で手ぶれ補正を実装するためのサンプルコード

>>:  要素の属性を削除する JS removeAttribute() メソッド

推薦する

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

http:// の代わりに // を使用する利点は何ですか (アダプティブ https)

//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...

MySQL 接続失敗の一般的な障害と原因

==================================================...

無効な Nginx クロスドメイン設定 Access-Control-Allow-Origin の解決策

nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...

CSS3のtext-fill-colorプロパティの詳細な説明

text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...

JavaScriptは検証コードと検証のランダム生成を実装します

この記事では、検証コードのランダム生成と検証を実現するためのJavaScriptの具体的なコードを参...

Linux ユーザー グループと権限の概要

ユーザーグループLinux では、すべてのユーザーはグループに属する必要があり、Linux には次の...

MySQLでテーブルインデックスを構築する方法

目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...

Node.js を使用して png 画像に透明なピクセルがあるかどうかを判断する方法

背景PNG 画像は jpg 画像よりも多くのストレージスペースを占有しますが、PNG 画像の品質は大...

VMware での Linux CentOS6.9 インストール グラフィック チュートリアル

技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...

ウェブページサイズに関する調査

<br />統計によると、Web ページの平均サイズは 2003 年以降 3 倍に増加し...

CSS 命名: BEM、スコープ付き CSS、CSS モジュール、CSS-in-JS の説明

CSS の適用範囲はグローバルです。プロジェクトがどんどん大きくなり、参加する人が増えるにつれて、命...

MySql ストレージ エンジンとインデックスに関する知識のまとめ

ストレージエンジンデータベース ストレージ エンジンとは何ですか?データベース エンジンは、データベ...

MySQL テーブルを作成するためによく使用される SQL ステートメントの概要

最近、私はプロジェクトに取り組んでおり、背景を記述するために SQL ステートメントを使用する必要が...