Сообщение от nevro
|
Если в ООП языке пишу "переменная типа String", например, то это значит: "объект лежит в куче, а в переменной - ссылка на него."
|
Если продолжишь так утверждать то тебя ждет частый стук граблями по носу =).
На самом деле все немного сложнее. У тебя есть переменная типа String и есть свойства и методы с помощью которых ты можешь работать с этой переменной. А где как и что лежит это уже скрыто за инкапсуляцией и не должно тебя волновать.
Сообщение от nevro
|
Если функция - это объект, то что тогда просто функция?
|
Объект и функция это разные типы данных(переменных) в JavaScript.
По этому утверждать что "функция - это объект" в корне неверно.
Функция в JS это специальный объект который реализует функтор.
"просто функций" не бывает.
ИМХО: замыкания, реализация функций, бедный набор базовых типов, странные механизмы приведения типов - это фичи JavaScript и следствие архитектуры хуяк хуяк и в продакшен.
JS разрабатывался и реализовывался одним человеком в течении недели =).