#javascript
#javascript
Вопрос:
Привет, я изучаю функцию обратного вызова Javascript, но я не знаю, как установить значение по умолчанию для функции обратного вызова.
let mul = (num1,num2) =>{
return num1*num2;
}
let cal = (num1,num2,cb) =>{
console.log(`The Answer is ${cb(num1,num2)}`)
}
cal(3,2,mul);
Вот код, в котором я пытался установить значение по умолчанию для функции обратного вызова.
let sum = (num1,num2) =>{
return num1 num2;
}
let mul = (num1 = 3,num2 = 2) =>{
return num1*num2;
}
let cal = (num1,num2,cb) =>{
console.log(`The Answer is ${cb(num1,num2)}`)
}
cal(mul);
Вместо cal(numberone,numbertwo,mul);
. Могу ли я вызывать только такую функцию cal(mul);
.
Редактировать
let testmul = (num1 = 3,num2 = 2) =>{
let result = num1*num2;
console.log(`${result}`);
}
testmul();
Это то, что я хотел бы сделать. Если я не помещаю число в функцию. Функция будет иметь значение по умолчанию. Но на этот раз я хочу попробовать это с функцией обратного вызова.
Комментарии:
1. Я не уверен, о чем вы спрашиваете — «функция обратного вызова» — это просто функция, вы устанавливаете значение по умолчанию, как и все остальное. Но ваш первый вызов — это to
cal
(не ваша функция обратного вызова), и вы передаете первый аргумент функции,cal
ожидая два числа, а затем функцию обратного вызова.cal
Для этого нужны значения по умолчанию, и даже тогда вы не можете изменить порядок параметров, только их значения .2. Я отредактировал свой пост, чтобы предоставить вам больше информации.
Ответ №1:
Ответы на ваш вопрос подробнее: https://nodejs.org/en/knowledge/javascript-conventions/how-to-create-default-parameters-for-functions/
Вы должны проверить, не определен ли последний параметр, а затем вручную исправить все остальные параметры, прежде чем продолжить работу в коде. Этот случай также действителен для современного JavaScript (ES6 / ES2015). В примере показано, как это сделать:
const example = function (param1, optParam, callback) {
if (callback === undefined) {
// only two parameters were passed, so the callback is actually in `optParam`
callback = optParam;
//give `optParam` a default value
optParam = "and a default parameter";
}
callback(param1, optParam);
}
example("This is a necessary parameter", console.log);
example("This is a necessary parameter", "and an optional parameter", console.log);
Ответ №2:
let DefaultCallback = (args) => {
... do stuff
}
тогда вы можете сделать так:
function myFunc(param1, param2, callback = DefaultCallback){
return param1;
callback();
}
затем, если вы не предоставите обратный myFunc(2)
вызов, как вы сказали, он будет иметь значения по умолчанию для функции defaultCallback, и он работает и для других переменных, если вы хотите определить параметры функции по умолчанию