12
|
12
моё недоумение основано лишь на том что человек достаточно туп чтобы понять что я не написал РОВНО символом = а написал его словом РОВНО. из контекста это можно было понять, что впрочем все адекватные люди поняли это.... |
12
|
Цитата:
|
Цитата:
var a = {}; (a = a).b = 5; alert(a.b) |
var foo = { bar: function () { alert(this); } }; foo.bar(); // Reference, OK => foo (foo.bar)(); // Reference, OK => foo (foo.bar = foo.bar)(); // Value => global? в последней строчке скобки (foo.bar = foo.bar) возвращают Значение обьекта, а не ссылку на него. Почему? |
эт еще кто из нас дурачек :D Какие Reference? У вас идет проверка объекта вызова.
var foo = { bar: function() { alert("this === window: " + (this === window) + "\nthis === foo: " + (this === foo)); } }; foo.bar(); // foo (foo.bar)(); // foo (foo.bar = foo.bar)(); // window |
Цитата:
var foo = { bar: function () { alert(this); } }; foo.bar.x = "Hello!"; (foo.bar = foo.bar).x = "lalala"; alert(foo.bar.x) |
Livanderiaamarum,
var foo = function() { return this; }; var bar = { baz: function () { return this; } }; alert([ foo(), //Window foo.prototype.constructor(), //Object bar.baz(), //Object (bar.baz)(), //Object (bar.baz = bar.baz)(), //Window (bar.baz = bar.baz()), //Object bar.baz //Object ].join('\n')); Рассмотрим подробнее, что происходит с: (bar.baz = bar.baz)(); В этом случае, согласно спецификации вызывается метод GetValue(). Это значит, что тип Reference заменяется Function и вызов фунции происходит уже в Window, т.к. this будет null var bar = { baz: function () { return this; } }; var foo = bar.baz; alert([ foo(), //Window (some = bar.baz)(), //Window (1, bar.baz)() //Window ].join('\n')); |
Господа, добрый день :)
monolithed, разрешите задать два вопроса: 1. Цитата:
2. Цитата:
Livanderiaamarum, практически цитата из книги: Операции над элементарными типами производятся по значению, а над ссылочными типами – по ссылке. Числа и логические величины – это элементарные типы; объекты - ссылочные. Массивы и функции – это специализированные типы объектов. Строки сравниваются по значению. |
Часовой пояс GMT +3, время: 02:26. |