import com;namespace web;class script { ctor(language = 'JScript'){{ this.msc = ..com.CreateObject("ScriptControl"); // …… 其他代码省略 this.reset = function(){ this.msc.Reset(); //脚本语言名称转为小写 var lang = ..string.lower(this.msc.Language); //遍历 web.script.preload 名字空间 for(k,v in self.preload){ //如果扩展对象的 language 表指定了对当前语言启用扩展 if(!v.language || v.language[lang]){ //执行扩展对象的 code 属性指定的脚本代码 if(v.code)this.msc.AddCode(v.code); //执行扩展对象的 init 函数 if(v.init)v.init(this.msc); } } } this.reset(); // …… 其他代码省略 }}}web.script.preload 名字空间下的扩展对象,可选指定以下三个属性:
1、属性 language 可用表对象指定支持哪些语言 。
2、属性 code 可用于指定默认加载的脚本代码 。
3、属性 init 可指定初始化执行的函数 。
然后我们再看一下 web.script.json 扩展库的 aardio 代码:
import web.json;import web.script;namespace web.script.json{};// JavaScript 扩展namespace web.script.preload.json3 { language = { javascript = true; jscript = true; } code = //省略JSON3 源码}// VBScript 扩展namespace web.script.preload.json3vbs { language = { vbscript = true; vbs = true; } init = function(msc){ msc.AddObject("JSON",{ parse = function(...){ return ..web.json.parse(...); }; stringify = function(...){ return ..web.json.stringify(...) }; }) }}
推荐阅读
- 一年级数学加减混合的教案 一年级数学加减混合教案文案
- 混合型皮肤护肤术 一周最多两次去角质
- 首套房贷款未还清,二套纯公积金贷款额度不够,怎么办?混合贷款是否首付要高?
- 种多肉用沙子和土混合就可以吗 种多肉用沙子
- 卡罗拉油电混合车多少钱 卡罗拉油电混动多少钱
- 什么车的发动机用了混合喷射
- 本田有哪几款SUV 本田有哪几款油电混合
- 宝马i8是不是油电混合 宝马i8是混合动力吗
- wey p8是混动车吗
- 混合喷射能降低油耗吗 混合喷射能降低油耗吗视频