SagePtr: Не знаю, ссылки с каких ресурсов вас удовлетворят, но начну с самого общего Ссылка (вики), где написана аксиома: «Ссылка не является указателем, а просто является другим именем для объекта»
А вот раздел Ecmascript — The Reference Specification Type, в котором расписано получение значения ссылки.
Кстати, во всей спецификации вы не найдёте ни одного слова poiner.
Дополню, что некое подобие псевдоэлемента для input есть для оформления placeholder.
В спецификации ничего на эту тему нет и каждый вендор реализовал это по-своему. В webkit и Gecko это сделано с помощью ::-webkit-input-placeholder и ::-moz-placeholder.
SagePtr: Если бы передавалась или присваивалась ссылка, изменение переменной влияло бы на операцию присвоения и в другой переменной незамедлительно произошла бы смена значения.
В случае передачи by sharing мы получаем копию ссылки, что позволяет изменять свойства объекта, но изменение значения не влияет на сам объект.
Про число — метод val(). Но значение атрибута — строка, и для гарантированно успешной работы, как с числом, следует применить метод глобального объекта parseInt().
Дмитрий: Ну я привёл пример в самом начале, где исходный объект поменялся, а ссылка на него не обновляется:)
В 99% задач такое копание не требуется, но для тонкого понимания знание того, как происходит передача ссылки на объект, всё же нужно.
Дмитрий: А я и не говорю, что в переменной хранится объект:) Хранится значение ссылки на объект. Технически это называется Call by sharing. Очень хорошо описывает это Дмитрий Сошников в своём блоге.
SagePtr: Мы явно указали, что в переменной y должно храниться то, что хранится в x. Будь это ссылка, то изменив x мы автоматически бы получили изменение и в y. Но этого не происходит.
vizavill: В Javascript передаются не ссылки, а их значения. При создании нового объекта в переменной сохранилось значение новой ссылки, в то время как в другом хранится значение ссылки на предыдущий объект. В итоге мы имеем 2 разных объекта, значения ссылок на которые хранятся в 2-х переменных.