|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Мистика при присвоениях
Кто-нибудь может объяснить почему в FD вот такая запись
вызывает Цитата:
прокатывает и не вызывает ошибки?Переменная purchaseData вообще нигде не описана.При этом если затрейсить её - показывают [object Object] даже за рамками метода, где она была проинициализирована.Но если поставить брекпоинт где-нить после инициализации в скоупе this её нет, и если навести мыша на имя переменной в подсказке опять показывается что переменная создана.Оно у всех так или у меня с FD что-то? PS: класс, где все это поисходит НЕ динамический. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы считаете, что purchaseData и this.purchaseData — одно и то же?
Первое — локальная переменная функции. Второе — свойство экземпляра.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Никто и не говорит что это одно и тоже
Цитата:
Цитата:
Последний раз редактировалось undefined; 27.05.2015 в 22:28. |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
У вас тут наверно False стоит?
Project -> Properties -> Compiler Options -> Enable Strict Mode |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Callme,действительно проблема в стрикт мод была поставил true и как посыпалось... Уж лучше объявлю переменную и верну false
Добавлено через 1 час 40 минут интересно к какой области видимости тогда принадлежит объект при выключенном стрикт моде |
|
|||||
Стрикт мод не влияет на то, к "какой области видимости принадлежит объект". Если он включен - компилятор просто закрывает глаза на некоторые моменты Вашего мягко говоря не идеального кода и делает грязную работу за вас.
__________________
if (love is true) break my.heart; |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
|
|
|||||
Строчка
Без стрикт мода преобразуется в: Как видно она становится локальной переменной внутри функции. Просто её имя совпадает с переменной класса. Если ты не указываешь this, то purchaseData это переменная функции, если указываешь, то переменная класса. Строка: По прежнему будет вызывать ошибку. Ваша ошибка в том, что переменная purchaseData не объявлена в блоке переменных класса. Ну или если ты злодей можно пометить класс ключевым словом dynamic.
__________________
if (love is true) break my.heart; |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
Цитата:
Цитата:
Цитата:
|
|
|||||
this - это указатель на себя внутри объекта. Это как ваше собственное "Я" внутри вас.
public class Test { public var purchaseData:int = 2; public function SapNotesPage() { test(); test2(666); } private function test():void { var purchaseData:int = 4; trace("test", purchaseData); trace("test this", this.purchaseData); } private function test2(purchaseData:int):void { trace("test2", purchaseData); trace("test2 this", this.purchaseData); } }
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
Часовой пояс GMT +4, время: 15:56. |
|
« Предыдущая тема | Следующая тема » |
|
|