套用或闭包



你好,我正在做一个javascript编码面试,为即将到来的面试做准备。我有一个问题把我弄糊涂了。问题如下:

下面说明了什么概念?

function makeAdder(x) {
return function (y) {
return x + y;
};
}
var addFive = makeAdder(5);
console.log(addFive(3));

有4个答案可供选择,然后有:局部套用,

关闭我认为这两个都是对的。我最后选择了咖喱,但我真的认为这也说明了闭包?你能解释一下为什么这不能说明闭包吗?

套用总是闭包的语法糖。它不调用函数。它只是变换它

对于上面的例子,它只是闭包,因为你使用了另一个变量来存储内部函数并以不同的方式执行。与addFive类似,它是稍后调用的内部函数。

如果你想curry,就像下面我创建的例子。柯里化是闭包的概念,因为它的前面的exection大括号可以帮助内部函数同时执行。因此,在这里,您不必使用另一个变量来存储调用内部函数。

根据定义,套用应该将sum(a, b, c)转换为sum(a)(b)(c)。

function makeAdder(x) {
return function (y) {
return x + y;
};
}

console.log(makeAdder(5)(3));

相关内容

  • 没有找到相关文章

最新更新