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() メソッド

推薦する

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...

Vue における LocalStorage と SessionStorage の違いと使い方

目次LocalStorageとはSessionStorageとはLocalStorage と Ses...

SASSで変数のデフォルト値を使用する方法

SASS で定義された変数では、後で設定された値によって古い値が上書きされます。 $色: 赤; $色...

MySQL 5.7 生成列の使用例の分析

この記事では、例を使用して、MySQL 5.7 で生成された列の使用方法を説明します。ご参考までに、...

mysql8.0.20 のダウンロードとインストールおよび発生した問題 (図とテキスト)

1.ブラウザでmysqlを検索してダウンロードしてインストールしますアドレス: https://d...

Echarts 基本入門: 棒グラフと折れ線グラフの一般的な構成

1eChartsの基本手順4つのステップ1 DOMコンテナを見つける2 初期化3 設定オプション4 ...

CocosCreatorでクールなレーダーチャートを描く方法

目次序文プレビュー文章グラフィックコンポーネントプロパティ機能グリッドを描く軸角度を計算するスケール...

MySQL 5.7.18 winx64 のインストールと設定方法のグラフィックチュートリアル

圧縮パッケージのインストールは、mysql-5.7 以降、大幅に変更されました。この記事では、mys...

MySQLデータベースのトランザクションとロックの詳細な分析

目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....

mysql replace into の使用法の詳細な説明

replace ステートメントは、一般的に insert ステートメントに似ています。ただし、テーブ...

自動ウェブページ更新と自動ジャンプのサンプルコード

ウェブページの自動更新: <head></head> の間に次のコードを追加...

MySQLスレーブのメンテナンスに関する経験の共有

序文: MySQL マスター/スレーブ アーキテクチャは、最も一般的に使用されるアーキテクチャ セッ...

HTML テーブルの行間隔を変更する方法の例

HTML テーブルを使用する場合、行間隔を変更する必要がある場合がありますが、余白、パディング、折り...

Ubuntu MySQL バージョンが 5.7 にアップグレードされました

数日前、図書館はサーバー(Ubuntu 14.04)にセキュリティ上の脆弱性があり、時間通りに修復さ...

mysql の認証、起動、およびサービスの起動のための一般的なコマンド

1. 4つの起動方法: 1.mysqld MySQL サーバーを起動します: ./mysqld --...