ホームページ  >  記事  >  ウェブフロントエンド  >  Object.assign の包括的な理解

Object.assign の包括的な理解

小云云
小云云オリジナル
2018-02-08 14:39:231931ブラウズ

Object.assign() メソッドは、すべての列挙可能なプロパティの値を 1 つ以上のソース オブジェクトからターゲット オブジェクトにコピーするために使用されます。対象のオブジェクトを返します。この記事では主に Object.assign の包括的な分析について説明します。

理解を容易にするために、Object.assign 用の mdn のポリフィルをここに掲載します

if (typeof Object.assign != 'function') {
  // Must be writable: true, enumerable: false, configurable: true
  Object.defineProperty(Object, "assign", {
    value: function assign(target, varArgs) { // .length of function is 2
      'use strict';
      if (target == null) { // TypeError if undefined or null
        throw new TypeError('Cannot convert undefined or null to object');
      }

      var to = Object(target);

      for (var index = 1; index < arguments.length; index++) {
        var nextSource = arguments[index];

        if (nextSource != null) { // Skip over if undefined or null
          for (var nextKey in nextSource) {
            // Avoid bugs when hasOwnProperty is shadowed
            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
              to[nextKey] = nextSource[nextKey];
            }
          }
        }
      }
      return to;
    },
    writable: true,
    configurable: true
  });
}

Object コンストラクターは、指定された値のオブジェクト ラッパーを作成します。値が null または未定義の場合は、空のオブジェクトを作成して返します。それ以外の場合は、指定された値に対応する Type を持つオブジェクトを返します。値がすでにオブジェクトである場合は、その値を返します。
栗をください

以上がObject.assign の包括的な理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。