2011-05-17 83 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