Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.02.2017, 15:39
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Как это работает? ))
недели 2-3 назад спрашивал, как получать доступ к аргументам функции, которая сама передана в качестве аргумента, в итоге получился код:
function fulname(fn) {
  
  fn(getName, getSurname);
  
  function getName(name) {
	  console.log('name is', name);
  }

  function getSurname(surname) {
	  console.log('surname is', surname);
  }
    
};

fulname(function (name, surname) {
  name('petya');
  surname('ivanov');
});

И теперь я не могу понять, как и почему это работает? ))
Ответить с цитированием
  #2 (permalink)  
Старый 03.02.2017, 10:31
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

innowed,
Похоже, вас немного путают одинаковые имена разных объектов.
Посмотрите такой вариант:

function fulname(fn) {
  
  fn(getName, getSurname);
  
  function getName(nm) {
	  console.log('name is', nm);
  }

  function getSurname(snm) {
	  console.log('surname is', snm);
  }
    
};

fulname(function (name, surname) {
  name('petya');
  surname('ivanov');
});

Так понятнее?
Ответить с цитированием
  #3 (permalink)  
Старый 03.02.2017, 14:01
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

я бы не сказал, что имена путают, вообще было вот так изначально
function fulname(fn) {
  
  fn(function(a){
      console.log('name is', a);
  },
  function(b){
      console.log('surname is', b);
  });
  
    
};

fulname(function (name, surname) {
  name('petya');
  surname('ivanov');
});

Не могу осмыслить, почему имя и фамилия так прокидываются
Ответить с цитированием
  #4 (permalink)  
Старый 03.02.2017, 14:15
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

innowed,
При выполнении функции
fulname(function (name, surname) {
  name('petya');
  surname('ivanov');
});

вместо name и surname вызываются и выполняются соответственно getName и getSurname (или первая и вторая функции по варианту пост №3) с параметрами 'petya' и 'ivanov'

Последний раз редактировалось Dilettante_Pro, 03.02.2017 в 14:19.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Развитие стандарта HTML Paguo-86PK Элементы интерфейса 104 14.12.2015 21:58
клик и событие работает клик и это событие не работает Trues Элементы интерфейса 3 27.05.2015 09:28
Объясните, пожалуйста, как это работает <a href="/otpravka-zayavki?zz='+as+ Roxana Общие вопросы Javascript 5 24.02.2015 16:52
Как это работает (способы передачи информации) gogol78 Общие вопросы Javascript 3 26.10.2014 15:46
Как работает Google Analytics: смотрю в "Инструментах разработчика" Chrome hrundel Общие вопросы Javascript 0 10.10.2013 19:31