Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.08.2012, 19:30
wisconsin вне форума Посмотреть профиль Отправить личное сообщение для wisconsin Найти все сообщения от wisconsin
  № 1  
Ответить с цитированием
wisconsin

Регистрация: Jun 2012
Сообщений: 40
По умолчанию Ключевое слово this

Код AS3:
public class Main
{
  var test;
 
   public function Main() 
   {
 
   this.test = new Object; // Какая
 
   test = new Object; //      разница?
 
   }
 
}
Какую задачу выполняет this?

Старый 04.08.2012, 20:06
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 2  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
Код AS3:
public class Main
{
   private var test;
 
   public function Main(test:Object) 
   {
 
   this.test = new Object; // переменная класса
 
   test = new Object; // локальная переменная конструктора
 
   }
 
}
__________________
low +

Старый 04.08.2012, 20:08
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Указывает на то, что обращение идет именно к свойствам этого экземпляра. Использовать this или нет, каждый решает для себя сам. За исключением случаев, когда использование this обязательно, например когда название свойства класса совпадает с названием параметра конструктора функции, например:
Код AS3:
private var value:Number = 0;
 
private function set number(value:Number):void {
       this.value = value; // в данном случае this обязательно, если нужно присвоить значение переменной, объявленной выше
}

Старый 04.08.2012, 21:24
wisconsin вне форума Посмотреть профиль Отправить личное сообщение для wisconsin Найти все сообщения от wisconsin
  № 4  
Ответить с цитированием
wisconsin

Регистрация: Jun 2012
Сообщений: 40
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Указывает на то, что обращение идет именно к свойствам этого экземпляра.
выходит this.test равнозначно Main.test? (в моем примере)

Старый 04.08.2012, 21:30
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 5  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Вам надо ближе ознакомиться с областями видимости AS3.

Цитата:
выходит this.test равнозначно Main.test? (в моем примере)
Не равнозначно, а это оно и есть. Но в данном случае, так "Main.test" писать не стоит. Это запутает вас и других читателей.

Старый 04.08.2012, 21:35
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Не равнозначно, а это оно и есть.
C чего это? Нет, это не так. Main.test - это обращение к статическому свойству test класса Main, которого у него, в данном случае нет.
Если бы было так:
Код AS3:
public class Main
{
  public static var test;
 
   public function Main() 
   {
 
   this.test = new Object; // Какая
 
   test = new Object; //      разница?
 
   }
 
}
то можно было бы так к нему обратиться.

Старый 04.08.2012, 21:39
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 7  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Ну это понятно. Просто автор в следствии незнания имел ввиду другое.)) Сам не подумал что путанницу могу создать)


Здесь, прекрасно описано, что есть что
http://help.adobe.com/ru_RU/ActionSc...0204-7f32.html

Старый 04.08.2012, 21:57
wisconsin вне форума Посмотреть профиль Отправить личное сообщение для wisconsin Найти все сообщения от wisconsin
  № 8  
Ответить с цитированием
wisconsin

Регистрация: Jun 2012
Сообщений: 40
Цитата:
В теле метода-конструктора создаваемый объект называется текущим. Для обращения к нему применяется ключевое слово this. (Коллин Мук)
Что за создаваемый объект? Если это экземпляр другого класса, то к нему невозможно обращаться с помощью this. Противоречие какое-то в книге.

Старый 04.08.2012, 22:04
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 9  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Что за создаваемый объект?
Текущий экземпляр класса.

Старый 04.08.2012, 22:04
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 10  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 921
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Подразумевается экземпляр класса именно того объекта, в методах которого производится обращение к this. Противоречий там нет.

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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