繁体   English   中英

在javascript中传递一个函数作为参数

[英]pass a function as argument in javascript

我目前正在解决一个练习,我面临将一个函数作为参数传递给另一个函数的问题。 练习是: 1. 声明一个函数,它接受两个参数ab ,并返回这些参数的总和。 var add = function(a,b){return a+b;};

2.声明变量计算器并为其分配一个函数,该函数接受三个参数a,b 和 c 计算器的主体内,调用作为参数c传递的函数,作为参数ab传递。 var calculator = function(a,b,c=add(a,b)) { var invoke = c; console.log(invoke); };

3.invoke 计算将sum函数作为第三个参数传递给它。 它应该是这样的吗? calculate(x,y,sum());

提交代码时,我收到以下错误:函数计算应打印以 x 和 y 作为参数调用 undefined 的结果;

任何人都可以帮忙吗?

“调用作为参数 a 和 b 传递的函数 c”是c(a,b)的很多词

听起来第二步的结果应该是这样的:

var calculator = function(a,b,c) { return c(a,b) }

您应该了解什么是“一流功能”。 实际上,这表示函数就像所有事物一样都是值。

var a = f()var a = f之间存在巨大差异。 前者调用运行f并将结果保存在a 后者将f自身保存在a 这意味着a是一个函数,您可以执行a() - 它等于f()

如果要创建一个以另一个函数为参数的函数(新函数称为高阶函数,现有函数称为回调函数),请按以下步骤操作:

function add(a, b) {
  return a + b;
}

function calculator(a, b, callback) {
  return callback(a, b); // Invoke the function stored in `callback` with parameters `a` and `b` and return the result
}

现在我把第三部分留给你作为练习......

编辑:

从 ES6 开始,您可以定义表单function(param = default)默认参数,但是为了使用add作为默认值,您应该确保在calculate之前声明它,以便当 js 引擎看到calculate的声明时它已经知道什么是add

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM