2011-05-17 47 views
3

我無法弄清楚如何從YUI3中更新全局變量。使用全局變量的JavaScript YUI3?

考慮下面的代碼:

window.myVariable = 'data-one'; 
var yuiWrap = YUI().use('node',function(Y) { 
    console.log(window.myVariable); // 'data-one' 
    window.myVariable = 'data-two'; 
    console.log(window.myVariable); // 'data-two' 
}); 
console.log(window.myVariable); // 'data-one' 

任何人都可以給我講解一下?這給我帶來了很多麻煩。爲什麼可以訪問window.myVariable,但是沒有在YUI3塊中正確更新?

我認爲這可能與Closures有關,但我不明白爲什麼閉包應該適用於全局「窗口」對象。

幫助?

回答

4

回調不會立即解僱,但事情發生後:

上連接一個或多個模塊到YUI實例。執行此操作時,會分析要求,並且可能會發生以下幾種情況之一:

  • 所有需求均可在頁面上找到 - 模塊連接到實例。如果提供,則使用回調將同步執行。
  • 模塊丟失,Get實用程序不可用或者'bootstrap'配置爲false - 發出有關缺少模塊和所有可用模塊的警告。
  • 模塊丟失,加載程序不可用,但Get實用程序和boostrap並非是假的 - 加載程序在執行以下操作之前進行引導...
  • 模塊丟失並且加載程序可用 - 加載器展開依賴關係樹並獲取缺少的模塊。 當加載器被加載時,提供使用的回調被異步執行。
+1

就是這樣。謝謝。如果我使用[YUI3依賴配置程序](http://developer.yahoo.com/yui/3/configurator/)確保在運行我的代碼之前在頁面中明確包含「節點」,那麼一切正常。 :) – 2011-05-18 10:17:42