我正在尝试使用库中定义的类,但结果仅收到错误。
[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:''
}
}
任务
✅创建项目的新版本。(文件>管理版本...)
✅将此库加载到另一个项目中[别名:CustomService] (资源>库...)
✅使用CustomService的功能
❌使用CustomService的类
如果我尝试使用班级
[NormalProject] /index.gs
function test (){
Logger.log(CustomService.libraryFunction())
var update = new CustomService.Update("");
Logger.log(update)
}
TypeError:CustomService.Update不是构造函数(第3街,archivo“代码”)
如何实例化此类的对象?
如果我跑...
记录仪
如官方文档中所述,
库用户仅可使用脚本中的以下属性:
- 不可计数的全局属性
- 函数声明,
- 使用var在函数外部创建的变量,以及
- 在全局对象上显式设置的属性。
这意味着this
库用户可以使用全局对象中的每个属性。
在ES6之前,函数外部的所有声明(以及函数声明本身)都是此全局对象的属性。ES6之后,有两种全局记录:
对象记录-与ES5相同。
- 函数声明
- 函数发生器
- 变量分配
声明性记录-新
- 一切- ,,
let
const
class
声明记录中的那些虽然是全局变量,但无法从全局“对象”访问。因此,库用户无法访问库中的类声明。您可以简单地向类添加变量分配,以向全局对象(在任何函数之外)添加属性:
var Update = class Update{/*your code here*/}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句