Как это работает? ))
недели 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'); }); И теперь я не могу понять, как и почему это работает? )) |
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'); }); Так понятнее? |
я бы не сказал, что имена путают, вообще было вот так изначально
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'); }); Не могу осмыслить, почему имя и фамилия так прокидываются |
innowed,
При выполнении функции fulname(function (name, surname) { name('petya'); surname('ivanov'); }); вместо name и surname вызываются и выполняются соответственно getName и getSurname (или первая и вторая функции по варианту пост №3) с параметрами 'petya' и 'ivanov' |
Часовой пояс GMT +3, время: 13:56. |