Задать вопрос
@olya_097

Почему такой вывод получается?

function f(a, b) {
  alert( this );
  alert( a + b );
}

var g = bind(f, "Context");
g(1, 2); // выводит Context, затем 3
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
KickeRocK
@KickeRocK
FrontFinish
А что оно, по-вашему, должно выводить?)
function f(a, b) {
  alert( this );
  alert( a + b );
}
var g = bind(f, "Context"); // - this = "Context", для g();
g(1, 2); // выводит Context, затем 3. - как в f() и написано - сначала алертом вывели this, которому назначили Context, а потом результат сложения a(1) и b(2) = 3

Отсюда::
Метод bind() создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения this предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы