Skip to content

JavaScript函数共用

Xwite edited this page May 23, 2023 · 6 revisions

为了减少重复的JavaScript,提供常用的函数共用方法

推荐使用jsLib和apply/call方法,片段只会执行一次,变量函数会保存在JS上下文中

存放函数片段

  • 在线文件托管
  • 本地文件
  • 书源的备注字段bookSourceComment
  • 书源的jsLib字段

阅读版本需要大于3.23.0503
需要注意的是如果直接填写js,jsLib的js上下文中没有阅读定义的变量,如java, cache等,需要使用call apply动态更改。例

function method(arg) {
  // 从上下文获取java cache source 变量
  const { java, source, cookie } = this;
  /* Android L版本不支持解构
  let java = this.java, source = this.source
   */
  java.log(arg + "调用java.log")
}

执行

eval函数

eval() 函数会将传入的字符串当做 JavaScript 代码进行执行,不过速度较慢,有可能的话建议使用{{}}规则

eval(String(source.bookSourceComment))
eval(String(java.importScript(url)))

{{}}规则

注意书源某些字段不支持该规则
阅读内部会将该规则替换成表达式的返回值,相当于手动复制粘贴

{{source.bookSourceComment}}
{{java.importScript(url)}}
method.call(this, "call 方法")
method.apply(this, ["apply 方法"])
Clone this wiki locally