|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 16.03.13]
[+1 22.03.13] Регистрация: Dec 2012
Сообщений: 100
|
Как свойство класса в функции, использовать внутри метода-конструктора?
package { final public class ExampleClass { private var arrayComponent:Vector<String> = Vector<String>(); private var count:uint public function ExampleClass(count:uint) { this.count = count; this.ExecuteLocalFunction = function(i:uint):Boolean { this.arrayComponent.push(Math.random()) return false; } } private function set ExecuteLocalFunction(f:Function):void { var i:uint = this.count; while(--i>-1) { if(f(i)) break; } } } } Почему выдаёт ошибку, что свойство this.arrayComponent.push не существует? хотя на самом деле это свойство объявлено в классе. |
|
|||||
[+1 16.03.13]
[+1 22.03.13] Регистрация: Dec 2012
Сообщений: 100
|
прошу прощения за своё ламерство
|
|
|||||
[+1 16.03.13]
[+1 22.03.13] Регистрация: Dec 2012
Сообщений: 100
|
в итоге мне надо неоднократно использовать метод ExecuteLocalFunction в классе ExampleClass, передавая ему в качестве параметра различные функции.
Другими словами: обработать различные функции одним методом Добавлено через 2 минуты Если внутри функции, которая передаётся в качестве параметра методу ExecuteLocalFunction, не использовать свойство this.arrayComponent, то всё хорошо компилируется без ошибок |
|
|||||
package { public class Executor { private var _componentList:Vector.<Number>; private var _count:uint; public function Executor(count:uint) { _count = count; _componentList = new <Number>[]; execute(foo); } private function execute(foo:Function):void { for (var i:uint = 0; i < _count; i++) { if (foo(i)) { break; } } } private function foo(number:Number):Boolean { _componentList.push(number); return false; } } }
__________________
тут я |
|
|||||
[+1 16.03.13]
[+1 22.03.13] Регистрация: Dec 2012
Сообщений: 100
|
Цитата:
Спасибо, мысль интересная, но тогда в этом случае ещё и придётся передавать в метод execute ещё и переменные (например в качестве объекта), объявленные внутри метода Executor. p.s. меня это навеяло на мысль, что проще будет использовать шаблон проектирования Декоратор или Компановщик |
|
|||||
[+1 16.03.13]
[+1 22.03.13] Регистрация: Dec 2012
Сообщений: 100
|
Спасибо, ваш код мне помог направить ход моих мыслей по созданию моего приложения в нужное русло
|
Часовой пояс GMT +4, время: 15:56. |
|
« Предыдущая тема | Следующая тема » |
|
|