这个lambda表达式怎么解?

let x = (x=>(x => x * 9)(x)+3)(5)

     let y = y => (y => y *9)(y) + 3

 

     console.log(x)

     console.log(y(5))

 

结果是48

let x = (x=>(x => x * 9)(x)+3)(5);
改成普通的函数是
function f2(x) {
	return x * 9;
}
function f1(x) {
	return f2(x) + 3;
}
let x = f1(5)



同样的
let y = y => (y => y *9)(y) + 3
改成普通的函数是
function f2(y) {
	return y * 9;
}
function y(y) {
	return f2(y) + 3;
}

 

这是嵌套函数,你把箭头函数改成普通的函数就好理解了

// 转成下面普通函数就很好理解了
let x = function (x) {
  return function (x) {
    return x * 9;
  }(x) + 3;
}(5);

let y = function (y) {
  return function (y) {
    return y * 9;
  }(y) + 3;
};

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632