Как установить значение по умолчанию для функции обратного вызова?

#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, и он работает и для других переменных, если вы хотите определить параметры функции по умолчанию