gpt4 book ai didi

javascript - 正确的函数调用礼仪?

转载 作者:行者123 更新时间:2023-12-03 05:56:14 26 4
gpt4 key购买 nike

我可能用错了这个标题的措辞,但在 javascript 中,可以像这样调用嵌套函数吗?如果不是的话,为什么以及什么是更安全或更正确的方法

function foo() {
return function poo() {
console.log("ew");
}
}

var fooPoo = foo()();

最佳答案

是的,如果您希望 poo 能够访问 foo 中的私有(private)信息并且不希望调用代码拥有访问该信息。或者即使 foo 知道如何创建 poo 函数,即使不需要私有(private)信息。

在一个表达式中完成所有操作的情况相对较少,因为通常当您从另一个函数返回一个函数时,您希望保留该函数:

var p = foo();
var fp1 = p();
var fp2 = p();

...但只是相对不寻常,而不是不寻常。

这是一个使用原始调用函数的上下文所保存的私有(private)信息的示例(allocator,这里就像您的foo):

function allocator(seed) {
return function() {
return seed++;
};
}

var a = allocator(1);
console.log(a()); // 1
console.log(a()); // 2
console.log(a()); // 3

请注意,调用 a 的代码无法直接操作 seed。它只能调用a并使用它返回的值。

关于javascript - 正确的函数调用礼仪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39919089/

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