Итак, я пытался немного узнать о контексте JS и понять «это» ключевое слово. Это код, с которым я работал:Явное «это» связывание: как работает метод .bind?
var addNumbers = function(num1, num2){
console.log(num1+num2);
}
var newAdd = addNumbers.bind(this,1,2);
newAdd();
Приведенное выше значение 3, как и должно быть. Но если я называю addNumbers.bind без "этого" ключевого слова:
var newAdd = addNumbers.bind(1,2);
Вызов newAdd() возвращает NaN. Почему это NaN происходит? и также, я только наткнулся на решение добавить «это» в качестве первого параметра, пытаясь разобраться и не обязательно из интуиции. Почему передача «это» в качестве параметра работает? и какой контекст представляет собой «это» в этом случае? Благодарю.
EDIT: Этот вопрос отличается от любых связанных вопросов .bind(), потому что он не просит общего объяснения этой функции. Я спрашиваю о конкретном случае использования и нуждаюсь в конкретном ответе. Другие предлагаемые дубликаты были более обобщенными и более открытыми для разных типов ответов.
@EngineerDollery добавил объяснение, почему это не так. Ответ, который я ищу, более конкретный, и речь идет об определенном аспекте .bind(), в отличие от общего объяснения .bind() –
. Я не хочу удалять мое закрытое голосование на этой основе, извините , Я думаю, что ссылочный Q тоже отвечает на этот вопрос - и довольно четко. Я думаю, что это дубликат более чем того вопроса, но я могу голосовать только за один дубликат. Ответы, которые вы все говорите, заменяют первый аргумент 'this', это то же самое, что вы узнаете, прочитав связанный обман. –