尝试调用Object.assign()时,Google Apps脚本引发错误

时间:2018-08-16 13:42:23

标签: javascript google-apps-script

Google Apps脚本似乎无法识别功能Object.assign()。尝试使用它时出现错误:

TypeError: Cannot find function assign in object function Object() { [native code for Object.Object, arity=1] }

我用来测试该功能的代码是直接从MDN复制的示例:

function myFunction() {
  const object1 = {
    a: 1,
    b: 2,
    c: 3
  };

  const object2 = Object.assign({c: 4, d: 5}, object1); //error is thrown here

  console.log(object2.c, object2.d);
  // expected output: 3 5
}

我将上面的代码直接复制粘贴到Chrome开发者控制台中,该控制台运行良好并提供了预期的输出。

我在网上找不到任何内容说明应用程序脚本不支持此特定功能或类似功能。发生什么了?我该如何解决?

1 个答案:

答案 0 :(得分:2)

Apps脚本是(在撰写本文时)是Ecmascript标准的完整实现,目前不本地支持Object.assign()。但是,您可以利用polyfill(可行时)来添加所需的功能。

以下链接上的MDN上有一个Object.assign()可用的polyfill:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill

注意:有传言称,Apps Script将在不久的将来进行升级,以使用Chrome的V8引擎,从而支持EcmaScript 2017。