2010-10-12 54 views
0

我在JavaScript上下文中有一個問題。我對這個問題有點困惑。下面的代碼說明我的問題:事件處理程序訪問上下文JavaScript

$(..).someFunction{ 
    var outOfScope = "OUT OF SCOPE!"; 

    $('somelink').click(handler); 

    function handler() { 
    alert(outOfScope); 
    } 
} 

我的問題是:如何outOfScope變量(這是處理程序之外定義)是處理器中見過?

+0

請參閱Jibbering的[Javascript關閉](http://jibbering.com/faq/notes/closures/)常見問題解答。 – outis 2011-03-05 21:13:38

回答

4

變量outOfScope的作用域爲someFunction,所以它在內部可用someFunction

功能handler裏面的someFunction,所以變量outOfScope仍然可用。

0

這就是JavaScript的工作原理。

所有在範圍內直接定義的變量也將在範圍內定義的所有範圍中可用。

+0

不完全正確。範圍內的範圍內的變量不可用於外部範圍或其他內部範圍。只是要挑剔;)也許你可以把「直接放在範圍內」。 – sje397 2010-10-12 15:40:55

+0

謝謝,修正:) – 2010-10-12 15:51:04