gpt4 book ai didi

javascript - 难以理解 Javascript 高阶函数的基本概念

转载 作者:行者123 更新时间:2023-12-02 16:06:39 26 4
gpt4 key购买 nike

我在理解 javascript 中的高阶函数时遇到了一些困难。

有人可以向我解释这两种情况的区别吗?

场景 1:

// A function that takes in a number (x) and adds one to it. 
function doMath(x){
return function (x){
return x + 1;
}
}

var didMath = doMath(5);
console.log(didMath()); // returns error

var didMath = doMath();
console.log(didMath(5)); // returns 6

var didMath = doMath(100);
console.log(didMath(5)); // still returns 6

场景 2:

function doMath2(x,callback){
return callback(x);
}

function add(x){
return x + 1;
}

console.log(doMath2(5,add)); // returns 6, works perfectly fine

我的印象是闭包可以从其包含的函数中访问参数。为什么在场景 1 中,doMath 中的“x”参数无法被包含的函数访问?

最佳答案

这里发生的事情是你永远不会存储 x 的值,你总是返回一个新函数,请参阅这个示例,它应该按你的预期工作,也许可以帮助你理解

function doMath(x){
var y = x;
return function(y){
return y + 1;
}
}

关于javascript - 难以理解 Javascript 高阶函数的基本概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com