#javascript #function #return
#javascript #функция #Возврат
Вопрос:
Я хочу вернуть функцию в выражение функции. Я не уверен, что это лучший способ сделать это.
const btn = document.querySelector(‘#btn’);
const textValue = document.querySelector(#textBox);
var jobQuestion =
btn.addEventListener(click, function() {
interviewQuestion(textValue);
})
function interviewQuestion(job) {
if (job.value === “driver”) {
return function() {
console.log(“have you had a speeding fine before”);
}
} else if (job.value === “doctor”) {
return function() {
console.log(“what university did you go to ? ”)
}
}
}
jobQuestion();
Текстовое значение — это текстовое поле типа ввода. Является ли это законным способом сделать это? Извините за макет. Моя жена работает на ноутбуке, поэтому мне приснился кошмар, когда я делал это на своем телефоне. Спасибо всем
Комментарии:
1. Но почему вы возвращаете функцию? Действительно ли это необходимо? В этой конкретной ситуации вам нужно возвращать функцию?
2. Нет , нет явного возврата из
addEventListener()
, и вы должны получать сообщение об ошибке, что «jobQuestion не является функцией» . Не совсем уверен, чего вы надеетесь достичь с помощьюjobQuestion()
3. Я согласен, мне не нужно это делать. На данный момент я просто пытаюсь понять концепции. jobQuestion() предназначен для вызова функции, которую я вернул из функции interviewQuestion. Я явно неправильно понял это! Как я могу прочитать ввод текстового поля и передать его в качестве аргумента функции через прослушиватель событий, а затем заставить его вернуть функцию? Возможно ли это?
4. Вы можете вызвать возвращаемую функцию
interviewQuestion(textValue)()// <== () to invoke
. Просто не вижу в примитивном примере использования показано, зачем вам это нужно или какую проблему более высокого уровня вы пытаетесь решить5. Обратите внимание, что ваша первоначальная концепция не учитывала бы, что событие должно произойти до того, как вы оцените, какой пользователь изменил значение на