在我的顶级函数中,我使用 require.js 导入了一些依赖项。他们在那里,没问题。在这个函数中,我定义了一个回调函数,并尝试使用一些通过 require.js 导入的变量,即父闭包中的变量。
他们只是不存在,正如断点和浏览 Chrome 检查器的范围变量面板所证实的那样。
我知道fn.apply
朋友们只是尽可能this
地设置上下文,而不是他们可以破坏对闭包的引用或改变范围链。
define([
'backbone',
'backbone.vent',
'app/utils/foo',
'app/services/intent'
], function(Backbone, Vent, Foo) {
'use strict';
// Backbone, Vent, and Foo are defined here
Vent.on('myevent', function(options) {
// Backbone is defined here, but not Vent or Foo.
});
});
这怎么可能?
我该如何解决?