我希望在locals
调用函数时允许对象的所有变量都在范围内。例如:
function test() {
console.log(string)
}
var locals = {
string: 'test'
}
function callTest(fn, locals) {
// INSERT MAGIC
fn()
}
callTest(test, locals) // -> should log 'test' without any errors
我试图避免的事情:
function(locals) {
with (locals) {
console.log(string)
}
}
用例:我想创建一个带有回调的模板系统。当地人应该真的是当地人,而不是“当地人”对象。
module.exports = function(callback) {
callback(null, string)
}
是的,我可以执行以下操作,但这很难看。现在,这就是我的做法:
module.exports = function(locals, callback) {
callback(null, locals.string)
}
这是否可能,甚至在任何编程语言中都是可能的?