|
|
|||||
Регистрация: Mar 2011
Сообщений: 11
|
call/apply и this
Все здравствуйте!!!
var thisObj = new Object(); thisObj.subProp = new Object(); var func =function(){ this.subProp // явное обращение происходит корректно subProp // неявное обращение приводит к ошибке } func.call(thisObj); С этим жить, или я что-то не так понимаю? Спасибо!!! |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Потому что subProp ищется во внешней области видимости.
|
|
|||||
Регистрация: Mar 2011
Сообщений: 11
|
Так не найдя, поиск не продолжается в свойствах this?
Точнее даже первоначально поиск разве не должен идти по собственным свойствам?????? Т.е. другими словами, все обращения к свойствам объекта внутри него же самого нужно производить только через явное this.prop? |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
В функциях, являющихся методами класса, this не обязателен (нет разницы). В самостоятельных функциях this нужен (есть разница).
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
this будет указывать на объект активации. Объектом активации при func.call(thisObj); будет thisObj. При прочих обращениях скоуп будет внешний. Например, во внешнем скоупе будет доступен thisObj и func.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Mar 2011
Сообщений: 11
|
Цитата:
Цитата:
Да, я это понимаю! Хотел выяснить именно нюанс, осветленный Stargazer. Спасибо! Добавлено через 4 минуты Цитата:
Добавлено через 6 минут Всем спасибо! Последний раз редактировалось jetmg; 03.04.2011 в 20:53. |
|
|||||
Modus ponens
|
Честно, не знаю о чем вы горорите, у меня этот код, после того, как я поубирал все предупреждения не компилируется потому, что как было сказано выше, еще на этапе компиляции, компилятор не знает куда приткнуть это свойство (т.как на этом этапе еще не извесно где это свойство искать).
Если бы вы смогли обойти компилятор, и все-таки написать аналогичный код (в теории возможно, но смысл от меня ускользает), то возможно остальные рассуждения о том, каким образом такая переменная будет разыскиваться могут оказаться верными или не очень, в зависимости от того, какой именно байткод вы сгенерируете.
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 17:45. |
|
« Предыдущая тема | Следующая тема » |
|
|