上一节 帮你精通JavaScript:简单求积分的方法 中,我们分享了应用抽象的sum函数近似求pi值的方法:
function pi_sum(a, b) {
function pi_term(x) {
return 1 / (x * (x+2));
}
function pi_next(x) {
return x + 4;
}
return sum(pi_term, a, pi_next, b);
}
//该函数收敛于pi/8
此案例中,我们不得不一本正经的写出两个“微不足道”的函数的定义,pi_term与pi_next,只为能在sum函数中顺利的调用。如果不繁琐费力的逐个定义,而只用其数学关系,岂不妙哉。
Lambda-Expression应运而生,pi_term与pi_next可被直接写为:
x => x + 4 //pi_next
x => 1 / (x * (x + 2)) //pi_term
此语法简洁优美,输入 x 然后输出所得值,用lambda-function重新撰写pi_sum函数:
function pi_sum(a, b) {
return sum(x => 1 / (x * (x + 2)),
a,
x => x + 4,
b);
}
匿名函数的语法为:
(parameters => expression)
匿名函数与define的函数是等效的, 比如:
function plus4(x) {
return x + 4;
}
//等效于
const plus4 = (x => x + 4); //加上括号,视觉上更加清晰
函数的调用也是相同的:
((x, y, z) => x + y + square(z))(1, 2, 3);
从直觉上,我们可以将lambda-function的语法逐步拆解:
//常规函数
function (a){
return a + 100;
}
// 匿名函数分步拆解
// 1. 去掉function关键字,引入arrow =>
(a) => {
return a + 100;
}
// 2.去掉关键字return
(a) => a + 100;
// 3. 最后去掉()
a => a + 100;
页面更新:2024-06-04
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号