gpt4 book ai didi

return 语句中的 Javascript 函数

转载 作者:行者123 更新时间:2023-11-30 10:13:39 25 4
gpt4 key购买 nike

我刚开始使用 javascript,并且还在学习。我发现这段代码有不同的函数声明。 funcAfuncBfuncX 之间有什么区别?代码中funcAfuncB在模块内部使用,funcX & funcY在模块外部调用作为 someModule.funcX()。可能非常简单,但我什至不知道这叫什么来进行研究。任何指针将不胜感激。

var someModule = (function() {
var funcA = (function() {...})();
var funcB = function() {...};

return {
funcX: function(){...},
funcY: function(){...}
};
})();

最佳答案

如果您只是想要这里所有功能之间的区别,那就是区别。

funcAfuncBfuncXfuncY 的第一个区别。

return 语句中的任何内容都可以通过 someModule 访问。所以我们可以在下面做这两个

someModule.funcX();
someModule.funcY();

但是我们不能做 someModule.funcA() 或 someModule.funcB()。理解为什么我们可以这样做就是理解 () 的行为方式。括号内的任何表达式都会被执行并返回结果。所以在这个例子中,我们在这些括号内放置了一个函数,这样一个匿名函数将在内存中创建,它的对象将在这里返回。

现在我们在函数声明之后多了一对括号。所以,这里发生的是 (returned function object)()。所以这个函数将被立即调用,并返回一个包含两个属性 funcXfuncY 的对象,其值为函数将被返回。

现在转到函数内部的第二部分。 funcAfuncB 的区别在于 funcAsomeModule 相同,即它也是一个 IIFE 并且取决于在 funcA 的主体上,将决定如果我们从 funcA 的主体内部返回函数对象,那么它也将是一个函数,否则它将包含任何内容我们从 funcA 的内部返回。

除此之外,其他都是简单的函数。

此外,与所问内容无关。我们可以在 funcXfuncY 中访问 funcAfuncB ,甚至在执行包含函数之后我们也会仍然能够访问这两个功能。有关此行为的更多详细信息,请查看 JavaScript 中的闭包。快乐学习 JavaScript。 :)

关于return 语句中的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25112950/

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