|
|
|||||
Регистрация: Apr 2014
Сообщений: 16
|
Аналог bind из javascript
Не пойму как сделать что-то подобное как в javascript
знаю существуют apply и call но ведь они вызывают функцию сразу |
|
|||||
Опишите, что вы хотите сделать на человекопонятном языке
__________________
местонахождение |
|
|||||
Регистрация: Apr 2014
Сообщений: 16
|
У меня есть класс Main, есть класс Page
у класса Main есть метод createView, в котором создается экземпляр класса Page, который должен загрузить необходимые для себя данные и выполнить полученный callback private function createView(viewName:String):Component { var view = new Page(); view.load(function() { this.addChild(view, viewName); }); return view; } public function load(callback) { DataLoader.load('getPageData', function() { callback(); }); } Добавлено через 10 минут Есть идея сделать что-то типа того: Оба этих класса унаследованы от класса Component Написать ему метод bind protected function bind(callback) { var self = this; return function() { callback.apply(self); } } и использовать Последний раз редактировалось bushstas; 14.11.2015 в 19:47. |
|
|||||
Я советую прочитать вам про событийную модель.
И стараться не использовать большое кол-во анонимных функций, как в js, это тот путь, который создаст вам больше проблем, чем принесет пользы.
__________________
местонахождение |
|
|||||
В as3 так не делают. Здесь есть события. Создаем кастомное событие, посылаем его из нужного объекта, и где необходимо подписываем к этом объекту слушатель данного события. Это и создаст необходимый контекст.
Хотя можно и в apply / call толкнуть вторым аргументом, если сильно надо) |
|
|||||
Регистрация: Apr 2014
Сообщений: 16
|
ну так и в JS есть кастомные события, хотелось бы без них, что нет бинда понятно, и почему так не делают??? кто это сказал?)))
Добавлено через 15 минут Кастомные события только сцена может диспатчить? Или на что-то еще можно их повесить? |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
|
|||||
Я. Как человек, занимающийся пграммированием на as3 уже 6 лет, постоянно пишуший свои и читающий чужие коды, говорю, что так не делают (или делают, но очень редко). Не потому, что это невозможно, а потому что это не удобно в as3 и необходимости делать именно так, нет.
Но, еще раз повторю, если очень хочется, то можно отправить в apply / call вторым аргументом. В чем проблема-то? Точного аналога JS'овского bind() в as3 не существует. |
|
|||||
Регистрация: Apr 2014
Сообщений: 16
|
никакой проблемы, просто хотел узнать есть ли что-то подходящее без использования костылей, все объяснили, спасибо, буду впихивать в свои представления об ООП события
PS хотя bind наверное и есть сам по себе костыль |
Часовой пояс GMT +4, время: 23:10. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|