Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Уточнения: про this и отличия protected, private (http://www.flasher.ru/forum/showthread.php?t=130280)

TommyLee 23.09.2009 17:51

Цитата:

Сообщение от BlooDHounD (Сообщение 852936)
а что тут не понятного? вызывается метод removeChild у объекта parent, в который передаётся ссылка this.

Код я читать умею. Смысла не понял. Ссылка на себя что ли (parent)?

random13 23.09.2009 17:51

Цитата:

Сообщение от TommyLee (Сообщение 852933)
Хм, тогда как понять пример SamFR, который он привел на второй странице:
Код AS3:

parent.removeChild(this)

?

а этот код сработает, этож получается вариант типо самоуничтожения)))) объект сам удаляет себя из родительского списка отображения

BlooDHounD 23.09.2009 17:55

если Вы умеет читать, то где Вы вычитали, что parent == this?

iNils 23.09.2009 17:55

parent.removeChild(this) родитель, удали (меня)

random13 23.09.2009 17:57

ясненько, интересный ход, надо где нить заюзать

TommyLee 23.09.2009 17:58

"по умолчанию": если this - это ссылка на себя и объект передается в метод как (MyClass obj), то (this) - это ссылка на себя.

dimarik 23.09.2009 18:35

Цитата:

Сообщение от iNils (Сообщение 852943)
parent.removeChild(this) родитель, удали (меня)

Просто уточняю

parent.removeChild(this) родитель, удали (свою ссылку на меня)

Цитата:

Сообщение от random13 (Сообщение 852939)
а этот код сработает, этож получается вариант типо самоуничтожения)))) объект сам удаляет себя из родительского списка отображения

Аха, "объект сам удаляет себя из родительского списка отображения", но никакого "самоуничтожения", потому что вполне могут быть другие ссылки на него и он будет жить =) Ну вот не может объект сам себя удалить.

etc 23.09.2009 18:43

Цитата:

Сообщение от random13 (Сообщение 852944)
ясненько, интересный ход, надо где нить заюзать

Не надо.

random13 23.09.2009 19:06

а чем он плох?

etc 23.09.2009 19:10

Цитата:

Сообщение от random13 (Сообщение 852970)
а чем он плох?

Вывернутой логикой.

Psycho Tiger 23.09.2009 19:11

Цитата:

экземпляры есть. нельзя использовать, так как это синтаксический запрет.
Я про то, что при использовании статичных методов всем плевать, какие экземпляры были или есть, и если и есть некоторое this - то это this это и есть ссылка именно на класс.

random13 23.09.2009 19:17

Цитата:

Сообщение от etc (Сообщение 852973)
Вывернутой логикой.

ну если только ей

Felicast 23.09.2009 19:23

прикольный спор получается весь флешевский форум против одного.
внесу свою лепту. раз уж автор знаком с с++, то в ас3 this - это тоже что в c++ *this:
Код AS3:

function someFunction(superMegaObject:YourSuperMegaObjectClass):Void
{
        //doSomething;
}
 
class YourSuperMegaObjectClass
{
        public function YourSuperMegaObjectClass()
        {
                someFunction(*this);
        }
}

=
Код:

void someFunction(YourSuperMegaObjectClass& superMegaObject)
{
        //doSomething;
}

class YourSuperMegaObjectClass
{
public:
        YourSuperMegaObjectClass()
        {
                someFunction(*this);
        }
}


TommyLee 23.09.2009 19:36

Цитата:

Сообщение от etc (Сообщение 852973)
Вывернутой логикой.

то есть в практике такой код не применяется? Если есть сборщик мусора, то он сам должен подобными вещами заниматься: ссылки удалять, а затем и объекты, если ссылок на них нет.

Psycho Tiger 23.09.2009 19:54

Не применяется, потому что ребенок не должен ничего знать о родителе. Если надо что то удалить - нужно испускать событие.

random13 23.09.2009 20:24

не должен знать, но получается что знает или как?

etc 23.09.2009 20:43

Нет. Решение создать ребенка принимает родитель. Он же принимает решение удалить его.

Felicast 23.09.2009 21:30

Цитата:

Сообщение от etc (Сообщение 853000)
Нет. Решение создать ребенка принимает родитель. Он же принимает решение удалить его.

"я тебя породил, я тебя и убью" © :)

2TommyLee:
читая эту ветку, я все никак не могу понять, к чему вы вообще этим интересуетесь?
вроде элементарные вещи спрашиваете

TommyLee 23.09.2009 21:44

Цитата:

Сообщение от Felicast (Сообщение 853009)
читая эту ветку, я все никак не могу понять, к чему вы вообще этим интересуетесь?
вроде элементарные вещи спрашиваете

для тех, кто с ними работает. я и в с++ сталкивался только с * и &. а тут только взялся изучать (по Муку) - и сразу же this.
Вроде бы мозг мне вправили - это аналог ссылки.

etc 23.09.2009 22:41

Цитата:

Сообщение от Felicast (Сообщение 853009)
"я тебя породил, я тебя и убью" © :)

Именно так :quiet:

Felicast 24.09.2009 00:22

Цитата:

Сообщение от TommyLee (Сообщение 853012)
Вроде бы мозг мне вправили - это аналог ссылки.

это ссылка на самого себя. в ас3 все переменные (кроме int, uint, Number, String) - это ссылки (&).

r_r_f_r 24.09.2009 00:31

Цитата:

Сообщение от TommyLee (Сообщение 853012)
для тех, кто с ними работает. я и в с++ сталкивался только с * и &. а тут только взялся изучать (по Муку) - и сразу же this.
Вроде бы мозг мне вправили - это аналог ссылки.

С каких пор в с++ исчез this?:)

this - это приватный указатель на самого себя создаваемый всеми компиляторами.

dimarik 24.09.2009 10:28

Цитата:

Сообщение от random13 (Сообщение 852978)
ну если только ей

что-то от Inversion of control =)

TommyLee 24.09.2009 19:47

Цитата:

Сообщение от r_r_f_r (Сообщение 853026)
С каких пор в с++ исчез this?:)

у меня не было нужды глубоко забираться. так что есть пробелы в общем программистском образовании. об этом - в следующей теме:-)
Спасибо за помощь, вопрос закрыл.


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

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