Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.12.2018, 01:27
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

1 - Копирование функции
В JS как и в других языках нет оператора копирования есть оператор присваивания. т.е. никакого копирования происходить не может. Обычно происходит присваивание переменной результата выражения стоящего справа. оператор function всегда создает новую функцию и возвращает ссылку на нее.
2 - "базовой переменной"
в языке нет такого типа данных как "базовая переменная".
3 - Я имел ввиду Java, C#, ... двух такого нет.
Забавно я всегда думал что библиотеки в этих языках на 99.999% состоят из ссылочных типов google
Очень важно различать сам объект и ссылку на объект.
Присваивание для сложных типов всегда копирует ссылку на объект.
Присваивание для примитивных типов создает новый объект и копирует значение полученное по ссылке.
Более наглядно это можно посмотреть в отладчике браузера. например в хроме клавиша F12->вкладка Memory-> и кнопка получить снапшот
и ты увидишь все объекты используемые на странице. те же функции числа и даже булевы значения.
Для доступа к этим данным в JavaScript используются высокоуровневая абстракция в виде двух древовидных структур(глобальная область видимости и текущий scope) которые позволяют манипулировать данными через имена переменных.Наглядно увидеть ссылки на данные можно набрав в console.log(window) в консоли.

К теме вопроса "Какой резон передавать функции в другое место?"
Функция становится такой же переменной как число строка или объект. подробнее

Пример в учебнике пытается наглядно показать что "ссылка на функцию" и "сама функция" это разные понятия и ссылкой на функцию можно манипулировать как переменной (принимать передавать изменять).
Простой пример где используется присвоение функций переменным это обработчики событий.
Это позволяет создавать и изменять объекты на лету в момент исполнения программы.

Последний раз редактировалось MallSerg, 11.12.2018 в 07:58.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как закрыть окно кликнув в любое другое место экрана? yaparoff Events/DOM/Window 1 27.04.2016 00:21
Как передавать данные из одного окна в другое? Tachi Events/DOM/Window 1 17.12.2014 22:41
Переместил навешивание события в другое место и не перестало работать hrundel jQuery 3 08.12.2013 09:49
Вставка элемента в место вызова функции belkir Элементы интерфейса 21 05.08.2011 08:59
обработчик событий в другое место sympler Общие вопросы Javascript 9 28.02.2011 10:34