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 空間データストレージと関数

目次1. データ型1. MySQL空間データとは何か2. GeoJSONとは3. 空間データ型のフォ...

CSS を使用して 3 列レイアウトを実装するサンプル コード。中央の列は適応型で、テキスト サイズに応じて幅が変わります。

Baiduのインタビューで遭遇する質問は、次のレイアウト効果を達成する必要がある。 中央の紫色の列...

クラウド CentOS で Docker リモート サービス リンクを有効にするための実装手順

ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...

Windows でのシンプルな Mysql バックアップ BAT スクリプトの共有

序文この記事では、Windows で Mysql をバックアップするための簡単な BAT スクリプト...

Zabbixで指定時間内の変化値を設定する方法の詳細な説明

背景説明: 既存の負荷分散装置には、付加価値状態にある指標があります (増加するだけで減少しないため...

jQueryメソッド属性の詳細な説明

目次1. jQueryの紹介2. jQueryセレクター2.1 5つの基本セレクタ2.2 4種類の関...

VMware 仮想マシンの NAT モードを構成する方法

この記事では、VMware仮想マシンのNAT構成プロセスを詳しく説明します。具体的な内容は次のとおり...

Vue命令の実装原理の分析

目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....

nginx リバース プロキシの魔法のスラッシュについての簡単な説明

nginx リバース プロキシを設定する場合、location と proxy_pass のスラッシ...

CentOS 7 に mysql5.7 の解凍バージョンをインストールするチュートリアル

1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする

サーバーにはNginx、データベースサポートにはMongo、Python言語のWebフレームワークに...

DockerでKafkaをデプロイする方法

目次1. Dockerをビルドする2. コンテナに入る3. 設定ファイルを変更する4. Kafkaを...

Centos システムの指定された場所に Nginx をインストールする方法

Centos システムの指定された場所に Nginx をインストールするにはどうすればいいですか?は...

Web デザイン TabIndex 要素

TabIndex は、Tab キーを押して、定義された TabIndex 要素を順番に取得し、各要素...