У меня есть класс Main, есть класс Page
у класса Main есть метод createView, в котором создается экземпляр класса Page, который должен загрузить необходимые для себя данные и выполнить полученный callback
Код AS1/AS2:
private function createView(viewName:String):Component {
var view = new Page();
view.load(function() {
this.addChild(view, viewName);
});
return view;
}
Метод load у класса Page
Код AS1/AS2:
public function load(callback) {
DataLoader.load('getPageData', function() {
callback();
});
}
так вот мне нужно чтобы внутри функции callback был нужный контекст, думается мне что нужно его передавать вторым аргументом и делать apply
Добавлено через 10 минут
Есть идея сделать что-то типа того:
Оба этих класса унаследованы от класса Component
Написать ему метод bind
Код AS1/AS2:
protected function bind(callback) {
var self = this;
return function() {
callback.apply(self);
}
}
что-то типа того
и использовать
Код AS1/AS2:
private function createView(viewName:String):Component {
var view = new Page();
var cb = this.bind(function() {
this.addChild(view, viewName);
});
view.load(cb);
return view;
}