bind как получаем аргументы?

90
03 марта 2021, 17:20

// bind чтобы привязать контекст  
function bind(func, context){ 
  return function(){ 
    return func.apply(context, arguments) 
  }; 
}; 
 
// передаем при вызове функции bind 
function f(a, b){ 
  console.log(a + b) 
}; 
 
// присваиваем в переменную результут функции bind 
var q = bind(f, 'context') 
 
// получаем такой результат  
 
 
//function(){ 
//    return f.apply(context, arguments) 
//}; 
 
// вызываем q с аргументами 2 и 3 
 
q(2, 3); 
 
// вопрос в том что не до конца понял как получили результат в нашем слачае число 5 ? 
// Как передается аргументы q(2, 3); в функцию f чтобы получить результат ?

Answer 1

Объект arguments содержит все аргументы, переданные функции (в твоём случае - анонимной функции, которую ты возвращаешь из bind и используешь через переменную q). А вызов apply передаёт их функции func (которая является функцией f), к которой он применяется.

READ ALSO
Передача состояния radiobutton в форму

Передача состояния radiobutton в форму

Всем доброго дня, подскажите я получаю состояние радиобаттонов через следующую конструкцию

105
Web Scrapping Node Js

Web Scrapping Node Js

Какую библиотеку можно использовать для скраппинга динамических данных? Например, библиотека request присылает страницу, где еще js скрипты...

84
Gravity forms js API

Gravity forms js API

Всем привет! взял пример с документации: Форма на сайте есть, айди полей и формы указаны правильно, подключен скрипт в functionsphp jquery подключен,...

91
Как использовать WPF в C++ Visual Studio 2019?

Как использовать WPF в C++ Visual Studio 2019?

В Visual Studio есть WPF для C#, но насколько я знаю есть WPF для C++, но никак не могу найти в своей студии данной функцииМожете подсказать как это сделать?

105