В моей функции верхнего уровня Im импортирует некоторые зависимости, используя require.js. И theyre там, никакая проблема. В рамках этой функции я определяю функцию обратного вызова и пытаюсь использовать некоторые из переменных, импортированных через require.js, то есть переменные в родительском закрытии.
И они просто присутствуют там, что подтверждается точкой останова и заглядывают на панель переменных Scope Variables 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.
});
});
Как это возможно?
И как я могу его исправить?