function decode(s) {
decode = function (s) {
return s + '!'
}
return s+'?'
}
console.log(decode("asd"))//outputs asd?
console.log(decode("qwe"))//outputs qwe!
此代码将从函数内替换函数体。但不幸的是,这不是很干净。因为第一个decode
是模块函数作用域,第二个decode
是全局变量作用域。是否有另一种更清洁的方法可以从函数内部替换函数体?
用例示例是第一次调用它的函数可能需要初始化一些数据。后续调用只会进行解码。