首页 > 解决方案 > 在谷歌表格外部库中使用 Java 脚本原型函数

问题描述

我在 google sheet 项目中添加了一个原型函数String,并创建了一个新版本以在另一个项目中引用。然后我在另一个项目中引用了这个新的库版本(脚本编辑器中的资源-> 库)。现在我想使用这个函数,但是执行失败,因为它不能识别这个函数。

project1中的函数定义:

if (!String.prototype.newStringFunc) {
  String.prototype.newStringFunc = function() {
    Logger.log(this.toString());

  };
}

Project2中的用法:

function test()
{
  var s = "Hello";
  s.newStringFunc();
}

结果:

TypeError:s.newStringFunc 不是函数

如果函数是在 Project2 中定义的 - 一切都很好。

Project1 中的其他“常规”功能被正确识别和执行。

不能将原型函数添加到外部库吗?

标签: javascriptgoogle-apps-scriptgoogle-sheetsprototype

解决方案


原型库用于旧的 Rhino javascript 解释器。

因此,如果您将Project2转回project1的旧 Rhino javascript 解释器,这并不重要。它会再次起作用。

只需转到菜单 >> 执行 >> 禁用 Chrome V8。

我真的不知道旧解释器可以使用多长时间,直到那时,让我们使用它。


推荐阅读