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

Epi*_*lar 4 javascript google-apps-script

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

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

我测试功能的代码是直接从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
}
Run Code Online (Sandbox Code Playgroud)

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

我在网上找不到任何内容说应用程序脚本不支持此特定功能或类似功能。发生什么了?我怎样才能解决这个问题?

Dim*_*gns 5

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

Object.assign()通过以下链接,可以在MDN上使用polyfill:

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

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