[英]pass a function as argument in javascript
我目前正在解决一个练习,我面临将一个函数作为参数传递给另一个函数的问题。 练习是: 1. 声明一个函数,它接受两个参数a和b ,并返回这些参数的总和。 var add = function(a,b){return a+b;};
2.声明变量计算器并为其分配一个函数,该函数接受三个参数a,b 和 c 。 在计算器的主体内,调用作为参数c传递的函数,作为参数a和b传递。 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.