3

我不知道如何从 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 块中正确更新?

我认为它可能与闭包有关,但我不明白为什么闭包应该应用于全局“窗口”对象。

帮助?

4

1 回答 1

4

回调不会立即触发,而是在发生某些事情后触发:

将一个或多个模块附加到 YUI 实例。执行此操作时,会分析需求,并可能发生以下几种情况之一:

  • 页面上提供了所有要求——模块附加到实例。如果提供,则使用回调同步执行。
  • 模块丢失,Get 实用程序不可用或“bootstrap”配置为假——发出有关丢失模块的警告并附加所有可用模块。
  • 缺少模块,加载程序不可用,但 Get 实用程序可用,并且 boostrap 不为假——加载程序在执行以下操作之前被引导...。
  • Modules are missing and the Loader is available -- 加载器扩展依赖关系树并获取缺失的模块。当加载器完成时,提供给使用的回调将异步执行。
于 2011-05-17T16:53:57.553 回答