Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.12.2018, 12:56
hoz hoz вне форума
Интересующийся
Отправить личное сообщение для hoz Посмотреть профиль Найти все сообщения от hoz
 
Регистрация: 26.11.2018
Сообщений: 19

Какой резон передавать функции в другое место?
Читаю учебник. Хотя, это не первое упоминание о такой возможности, но. тем не менее, очередной раз я об этом услышал, но никаких доводов логичных для подобных возможностей в языке не сказано.
Вот пример:
var f = function factorial(n) {
  return n ? n*factorial(n-1) : 1;
};

var g = f;  // скопировали ссылку на функцию-факториал в g
f = null;

alert( g(5) ); // 120, работает!

Я вижу это так:
1. Копирование функции в другую переменную производить дублирование кода.
2. Увеличивает количество используемой памяти.
Ведь если есть функция, и она работает как нужно, то её нужно использовать, а не копировать куда-то, а потом использовать под другим именем. Абсурд какой-то, на первый взгляд.
Вот и хочется увидеть адекватный вариант применения такого похода, если, конечно, кто-нить это вообще использует.
Ответить с цитированием
  #2 (permalink)  
Старый 09.12.2018, 13:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от hoz
Копирование функции в другую переменную производить дублирование кода.
Это не копия и не дублирование, а ссылка на одну и туже функцию.
https://learn.javascript.ru/object-reference

Последний раз редактировалось laimas, 09.12.2018 в 13:03.
Ответить с цитированием
  #3 (permalink)  
Старый 09.12.2018, 13:42
hoz hoz вне форума
Интересующийся
Отправить личное сообщение для hoz Посмотреть профиль Найти все сообщения от hoz
 
Регистрация: 26.11.2018
Сообщений: 19

Сообщение от laimas Посмотреть сообщение
Это не копия и не дублирование, а ссылка на одну и туже функцию.
https://learn.javascript.ru/object-reference
А что мешает воспользоваться базовой переменной, а не той, в которую копируется ссылка на ту же переменную, что и базовая?
Я провожу аналогию. Такого в других языках не встречалось.. Дико, на самом деле))
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2018, 14:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от hoz
Такого в других языках не встречалось.. Дико, на самом деле
Да неужто, например и т.п.
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2018, 14:18
hoz hoz вне форума
Интересующийся
Отправить личное сообщение для hoz Посмотреть профиль Найти все сообщения от hoz
 
Регистрация: 26.11.2018
Сообщений: 19

Сообщение от laimas Посмотреть сообщение
Да неужто, например и т.п.
Я имел ввиду Java, C#, в основном. Другие не рассматриваю, т.к. на другом не писал. Писал ещё на 1 и пишу, но там разработка не программ, а ботов. И он примитивнее. В первых двух такого нет.
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2018, 14:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Что вам найти применение ссылок в Си или сами найдете?
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2018, 18:19
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

https://www.youtube.com/watch?v=4oud...eWwem&index=21
первые две минуты
Ответить с цитированием
  #8 (permalink)  
Старый 10.12.2018, 18:14
hoz hoz вне форума
Интересующийся
Отправить личное сообщение для hoz Посмотреть профиль Найти все сообщения от hoz
 
Регистрация: 26.11.2018
Сообщений: 19

Сообщение от j0hnik Посмотреть сообщение
https://www.youtube.com/watch?v=4oud...eWwem&index=21
первые две минуты
Тема не раскрыта. Ну сказал он, что если присвоить одну переменную-объект в другую переменную-объект, то они будут ссылаться на один и тот же участок памяти. Так это я знаю уже несколько лет. Так во всех языках.
А вот какой с этого толк - тема не раскрыта.
Как я понимаю, используется это не часто. Как попадётся где-нить, то можно будет увидеть причину использования такого подхода..
Ответить с цитированием
  #9 (permalink)  
Старый 10.12.2018, 21:09
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Будут асинхронные запросы, тогда и вопрос решится )
Ответить с цитированием
  #10 (permalink)  
Старый 11.12.2018, 00:50
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

hoz,
почитайте про замыкания в яваскрипте, когда из функции возвращается другая ф-я. Там эта возможность широко используется.

Для объектов/массивов очевидное применение - передача параметров в функцию по ссылке, чтобы не копировать большие объёмы данных лишний раз.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как закрыть окно кликнув в любое другое место экрана? 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