rau*_*ltm 4 v8 google-apps-script
我正在尝试使用在库中定义的类,但结果我只收到一个错误。
[LibraryProject]/library/model/Update.gs
class Update {
constructor(obj = {}) {
if(typeof obj == "string"){
options = JSON.parse(obj);
}
Object.assign(this, obj);
}
text(){
return (this.message && this.message.text)?this.message.text:''
}
}
Run Code Online (Sandbox Code Playgroud)
任务
? 创建项目的新版本。(文件 > 管理版本...)
? 在另一个项目中加载这个库 [别名:CustomService] (资源 > 库...)
? 使用 CustomService 的功能
? 使用 CustomService 类
如果我尝试使用类
[普通项目]/index.gs
function test (){
Logger.log(CustomService.libraryFunction())
var update = new CustomService.Update("");
Logger.log(update)
}
Run Code Online (Sandbox Code Playgroud)
TypeError: CustomService.Update is not a constructor (line 3, archivo "Code")
如何实例化此类的对象?
如果我跑...
记录器
正如官方文档中所写,
库用户只能使用脚本中的以下属性:
- 可枚举的全局属性
- 函数声明,
- 在带有 var的函数之外创建的变量,以及
- 在全局对象上显式设置的属性。
这意味着this 库用户可以使用全局对象中的每个属性。
在 ES6 之前,函数外的所有声明(以及函数声明本身)都是这个全局对象的属性。ES6之后,有两种全局记录:
对象记录 - 与 ES5 相同。
- 函数声明
- 函数发生器
- 变量赋值
声明性记录 - 新
- 其他一切 -
let,const,class
声明性记录中的那些不能从全局“对象”访问,尽管它们本身是全局变量。因此,库用户无法访问库中的类声明。您可以简单地向类添加一个变量赋值,以将属性添加到全局对象(在任何函数之外):
var Update = class Update{/*your code here*/}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1205 次 |
| 最近记录: |