Google App Script不支持static关键字 如何使用静态方法?
问题解决:Google App Script中静态方法的使用
你遇到的ReferenceError: trythis is not defined报错,不是因为Google App Script(GAS)不支持static关键字——目前基于V8引擎的GAS运行时完全支持ES6的类和静态方法语法,错误来自你对静态方法的调用逻辑不符合规范:静态方法是挂载在类本身上的方法,不属于全局作用域,也不能通过类的实例调用。
正确代码修改
把你原来test123函数里的调用语句修改即可:
class Test{ constructor(a){ this.a = a; } static trythis(b,c){ return b*c; } } function test123(){ let test = new Test(123) Logger.log(test) // 静态方法需要通过类名调用,不能直接写方法名 let test2 = Test.trythis(2,3) Logger.log(test2) }
运行上面的代码就能正常输出结果。
兼容旧版Rhino运行时的方案
如果你使用的是不支持ES6类语法的旧版Rhino运行时,可以用传统构造函数的方式实现静态方法:
// 构造函数 function Test(a) { this.a = a; } // 直接给构造函数挂载方法实现静态效果 Test.trythis = function(b,c) { return b * c; } function test123(){ let test = new Test(123) Logger.log(test) let test2 = Test.trythis(2,3) Logger.log(test2) }
这种写法在新旧版GAS运行时都能正常运行。
内容的提问来源于stack exchange,提问作者Dan Chen
相关产品推荐
相关产品推荐

