函数定义作为值的讲解

1.作为值赋给变量

function sum(num1, num2) {
  return num1 + num2;
}

console.log(sum(10, 10));  // 20

let anotherSum = sum;
console.log(anotherSum(10, 10));  // 20

2.作为函数的实参(回调函数)或返回值

接受一个回调函数作为实参 或 返回值为函数定义,只要满足其一,函数 callSomeFunction 和 函数 returnSomeFunction 则称为高阶函数(Higher Order Function)。

作为实参的函数定义 add 则称为回调函数(Callback Function)。

作为返回值的函数定义 add2 不一定是回调函数,具体取决于函数定义 add2 是否作为实参。

//作为实参(回调函数)
function callSomeFunction(someFunction, someArgument) {
  return someFunction(someArgument);
}

function add(num) {
  return num + 10;
}

console.log(callSomeFunction(add, 10));  // 20
//作为返回值
function returnSomeFunction() {
  function someFunction(num) {
    return num + 10;
  }
  return someFunction;
}

let add2 = returnSomeFunction();
console.log(add2(10));  // 20

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/javascriptexp/36625.html

huoxiaoqiang的头像huoxiaoqiang

相关推荐

  • JavaScript语言的可计算名

    可计算名语法用于使用表达式的返回值作为成员名。 支持类的成员:静态字段、静态访问器属性、静态方法、实例字段、实例访问器属性、实例方法。 支持对象字面量的成员:数据属性、访问器属性、方法。 方括号 [] 内可以为任何 JavaScript 表达式,表达式的返回值的类型只可以为 字符串类型(包括空字符串) 或者 符号类型。…

    JavaScript经验 2025年4月3日
    1170
  • innerHTML、outerHTML、textContent、innerText、outerText实例属性的区别

    1.innerHTML和outerHTML区别 类 实例属性 区别 Element innerHTML 目标元素标签之间的 HTML 代码,不包括目标元素标签本身。 Element outerHTML 目标元素标签之间的 HTML 代码,包括目标元素标签本身。 2.textContent和innerText区别 类 实…

    JavaScript经验 2023年10月15日
    7620
  • type=”module”、defer、async属性的区别

    当 <script> 标签无 type=”module” 属性时,defer 和 async 属性都只可以被用在 <script> 元素的外部方式,如果被用在 <script> 元素的内部方式,则会被忽略。 当 <script> 标签有 type=”module” 属性时…

    JavaScript经验 2024年1月25日
    1.3K0

发表回复

登录后才能评论