Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ОПЕРАТОР ПРИСВАИВАНИЯ ПОЛУЧАЕТ ЗНАЧЕНИЕ ССЫЛКИ? (https://javascript.ru/forum/misc/23888-operator-prisvaivaniya-poluchaet-znachenie-ssylki.html)

B@rmaley.e><e 11.12.2011 23:52

Цитата:

Сообщение от Livanderiaamarum
вы говорите полный бред.

А интерпретатор JS поддерживает меня в этом
var a = {b : 5};
(a = a).b = "String";

alert(a.b)

Livanderiaamarum 12.12.2011 13:59

Разобрался:

Значение this в контексте функции определяется вызывающей стороной (caller-ом) по форме вызова. Если слева от скобок вызова ( ), находится выражение типа Reference, то значением this будет являться базовый объект этого значения типа Reference. Во всех остальных случаях (т.е. при любом другом типе значения, отличном от типа Reference), значением this будет всегда являться null. Но, т.к. null особого смысла для значения this не несёт, автоматом подставляется глобальный объект.


в моем случае возвращается тип Function, в вашем возвращается Reference, которое скобки оставляют ссылкой. и да вы правы, типа данных обьект на этом уровне не может быть на прямую.

но вот вопрос. Как ОБЬЯСНИТЬ ЭТО?

({a:20}).b = 30


что это такое? что произойдет? какая ссылка есть на обьект? какая? какая база у ссылки? мы работаем с обьектом не имеющим ссылку??? О_О но это же невозможно..) и как тогда? как мы можем создавать свойство b ?? )))

я серьезно спрашиваю, я сам не догоняю))

мы создаем безымянный обьект в глобал области что ле ?

GuardCat 12.12.2011 14:14

Пардон за оффтоп: Livanderiaamarum, пожалуйста, умоляю, прекратите писать слово «равно» с буквой «о».

Livanderiaamarum 12.12.2011 14:30

Цитата:

Сообщение от GuardCat (Сообщение 142204)
Пардон за оффтоп: Livanderiaamarum, пожалуйста, умоляю, прекратите писать слово «равно» с буквой «о».

Такой уж у нас убогий нелогичный язык)) трудно в нем орентиорваться многие косяки приходится просто запоминать))

devote 13.12.2011 02:12

Цитата:

Сообщение от Livanderiaamarum
Такой уж у нас убогий нелогичный язык))

Дело далеко не в языке

trikadin 13.12.2011 07:36

Цитата:

Сообщение от Livanderiaamarum
Такой уж у нас убогий нелогичный язык))

Цитата:

Сообщение от devote
Дело далеко не в языке

:haha:

Хотя идиот, конечно. Ты ругаешься на всё, что не умеешь использовать?

monolithed 13.12.2011 08:31

Цитата:

Сообщение от Livanderiaamarum
Значение this в контексте функции определяется вызывающей стороной (caller-ом) по форме вызова. Если слева от скобок вызова ( ), находится выражение типа Reference, то значением this будет являться базовый объект этого значения типа Reference. Во всех остальных случаях (т.е. при любом другом типе значения, отличном от типа Reference), значением this будет всегда являться null. Но, т.к. null особого смысла для значения this не несёт, автоматом подставляется глобальный объект.

по-моему, я уже это упоминал?
Цитата:

Сообщение от monolithed
Важно запомнить, что this в контексте функции определяется caller'ом. И все, что определяется слева от () является типом Reference, в противном случае null, а т.к. нет практического смысла возвращать null подставляется Window.
Исходя из вышесказанного выражение типа:
(foo.bar = foo.bar)(); не определяются как Reference, именно по этому возращается Window (в basic mode).



Часовой пояс GMT +3, время: 02:26.