如果沒有將它綁定到窗口對象,那麼實現這樣的事情的正確方法是什麼?將變量注入到結尾
x = function(fn)
{
foo = 'bar';
fn();
}
x(function()
{
console.log(foo) // error happens here
});
在PHP中,您可以通過「use」指令進行操作。
$foo = 'bar';
$fn = function() use($foo)
{
echo $foo; // bar
}
編輯:我改變了一段代碼。我試圖實現的是,在閉包中創建一個聲明變量,而不需要在那裏傳遞它。
foo = 'bar';
console.log(foo) // bar
console.log(window.foo) // bar
console.log(this.foo) // bar
我想達到同樣的效果,與另一個已被綁定爲「this」的對象。
我沒有得到你想要的。我只希望答案不是「與」。 –
你是不是把它與窗口對象綁定在一起意味着什麼?當你做一個封閉的時候,你會對封閉的範圍進行一種綁定。 –
這不應該說'未定義'。在這裏工作正常http://jsbin.com/evacak/1/edit – elclanrs