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)
}
これはまったく可能ですか、それともどのプログラミング言語でも可能ですか?