Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Получить геттер как функцию. (http://www.flasher.ru/forum/showthread.php?t=153246)

ChuwY 30.03.2011 20:39

Получить геттер как функцию.
 
Вопрос прост. Решение не ясно.

Известно, что можно сделать так

Код AS3:

class Foo{
  private var _someMethod : Function;
  public function Foo(){
    _someMethod  = getName;
  }
 
  public function get name():String{
    return "name";
  }
 
  public function getName():String{
    return "name";
  } 
}

Но как можно получить первый вариант функции?

f.g.programmer 30.03.2011 20:52

скорее всего никак, но как вариант
Код AS3:

public function getName():String{
    return name;
}


udaaff 30.03.2011 20:54

А зачем это надо?

DZHETIGAPA 30.03.2011 20:55

Код AS3:

public function get nameFunc():function
{
    return _someMethod()
}

Так не пойдет?

kseniya 30.03.2011 21:11

о как =)
Код AS3:

package {
        public class Foo {
                private var _someMethod:Function;
                public function Foo() {
                        _someMethod  = name;
                }
                public function get name():Function {
                        return getName;
                }
 
                public function getName():String {
                        return "name";
                }
        }
}

но зачем это надо.. непонятно!

ChuwY 30.03.2011 21:41

Цитата:

Сообщение от kseniya (Сообщение 985206)
о как =)
Код AS3:

package {
        public class Foo {
                private var _someMethod:Function;
                public function Foo() {
                        _someMethod  = name;
                }
                public function get name():Function {
                        return getName;
                }
 
                public function getName():String {
                        return "name";
                }
        }
}

но зачем это надо.. непонятно!

Так не заработет. Так как name, как нормальный геттер вернет String.

Уже, в общем-то, не надо.

Но не вижу принципиальной ненужности этого.
Я хотел подменять метод. Чтобы первый раз выполнялся один, потом другой.
Но решил другим путём.

Котяра 30.03.2011 21:47

Геттеры/сеттеры нужны для сокрытия реализации, разоблачение их как функции входит в противоречие с основным предназначением.

i.o. 31.03.2011 00:37

ChuwY, если нельзя, но очень надо, то можно ;)
Правда один раз геттер / сеттер должен быть вызван и содержать соответствующие фичи.
Смысл такой (не совсем понял просто в каком контексте собираетесь использовать)
Код AS3:

package {
        public class Foo {
                public function Foo() {
                        getName();
                }
 
                private var _getNameRef:Function;
 
                public function get name():String {
                        this._getNameRef = arguments.callee;
                        return 'My name is Vasya';
                }
 
                public function getName():String
                {
                        if (_getNameRef == null)
                                return this.name;
                        return _getNameRef();
                }
        }
}


ShadowsInRain 31.03.2011 16:16

Сделать функции-обёртки вокруг геттера, забирать их.

cleptoman 31.03.2011 16:53

мне мультик напомнило
"а секрет моего секретного секретноингредиентного супа...." )

прошу прощения за оффтоп, не сдержался )


Часовой пояс GMT +4, время: 10:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.