首頁  >  文章  >  web前端  >  全面理解Object.assign

全面理解Object.assign

小云云
小云云原創
2018-02-08 14:39:231930瀏覽

Object.assign()方法用於將所有可列舉屬性的值從一個或多個來源物件複製到目標物件。它會傳回目標物件。本文主要和大家分享Object.assign的全面解析。

為了方便理解,此處貼出mdn的對Object.assign的polyfill

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或undefined,它將建立並傳回一個空對象,否則,它將傳回一個Type對應於給定值的物件。如果該值已經是一個對象,它將傳回該值。
舉個栗子

以上是全面理解Object.assign的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn