我无法弄清楚如何从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'
任何人都可以向我解释这个吗?这给我带来了很多麻烦。为什么可以从YUI3块中访问window.myVariable但没有正确更新?
我认为它可能与Closures有关,但我不明白为什么Closures应该应用于全局“窗口”对象。
帮助?
答案 0 :(得分:4)
回调不会立即触发,但发生了一些事后:
将一个或多个模块附加到YUI实例。执行此操作时,将分析需求,并且可能会发生以下几种情况之一:
- 页面上提供了所有要求 - 模块附加到实例。如果提供,则同步执行使用回调。
- 缺少模块,Get实用程序不可用或'bootstrap'配置为false - 发出有关缺少模块的警告,并附加了所有可用模块。
- 缺少模块,Loader不可用,但Get实用程序是,而且boost不是假的 - 在执行以下操作之前,加载程序是自举的....
- 缺少模块且Loader可用 - 加载程序扩展依赖关系树并获取缺少的模块。 当加载器被finshed时,提供给use的回调是异步执行的。