DynamicFunction
动态函数,类似于多态函数,但不限于按参数类型条件切换执行体
简介
定义
动态函数是一种特殊的函数,在函数执行前,需要先调用 getExecutor
方法获取函数执行体,如果获得的执行体为非函数,则动态函数将不执行
同时,动态函数拥有一个方法 isExecutable
用以检测动态函数是否可以被执行
声明方式
getExecutor// orname getExecutor// or name getExecutor
示例
let flag = false const fn = { if !flag return null return a + b} fn // false // nothing happen flag = truefn // true // 3 flag = falsefn // false // nothing happen
异步
若 getExecutor
函数为异步,则其执行过程及相关方法均为异步
var var fn = async { await return { return a + b }} await // log '3' after 1000 msawait fn // log 'true' after 1000 msawait fn // log 'test' after 1000 msawait fn // log '2' after 1000 ms
其他
名字
显式声明函数名
var fn = 'test' {...} // or var fn = name: 'test' {...} fn // test
若未显式声明函数名,则使用 executor
的名称
var fn = { return {...}} fn // test
参数个数 / 长度
无法显式声明,使用 executor
的长度
var fn = { return {...}} fn // 2