Javascript-对象散布polyfill是否有CDN链接?

时间:2019-06-25 06:51:57

标签: javascript polyfills babel-polyfill

我正在用polyfill搜索javascript中的对象散布运算符。是否有人拥有CDN链接,或者如果没有,则可以使用es5 javascript吗?

[System.Windows.DragDropEffects]

2 个答案:

答案 0 :(得分:4)

不,这是不可能的。对象传播是语法,因此不能进行多填充。只能填充新的对象和方法,而不能填充新的语法。

但是,您可以使用Babel:http://babeljs.io/

编译代码
"use strict";

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};
    var ownKeys = Object.keys(source);
    if (typeof Object.getOwnPropertySymbols === "function") {
      ownKeys = ownKeys.concat(
        Object.getOwnPropertySymbols(source).filter(function(sym) {
          return Object.getOwnPropertyDescriptor(source, sym).enumerable;
        })
      );
    }
    ownKeys.forEach(function(key) {
      _defineProperty(target, key, source[key]);
    });
  }
  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }
  return obj;
}

var i = {
  test: 123,
  test1: 5234
};

var b = _objectSpread({}, i, {
  test3: 243
});

丑陋,但是会起作用,并且可以自动完成。

在这种情况下,您可以polyfill Object.assign并使用:

var b = Object.assign({}, i, { test3: 243 });

答案 1 :(得分:2)

以前,散布/休息运算符不是有效的语法。您需要将该语法转换为有效的语法,才能使用它。