gpt4 book ai didi

javascript - 为什么 JavaScript 函数调用要用括号括起来?

转载 作者:行者123 更新时间:2023-11-28 07:39:21 27 4
gpt4 key购买 nike

这两个 JavaScript 函数调用有什么区别?

(function(){alert("foo")})()

与此相比:

(function(){alert("foo")}()) 

最佳答案

这样做是为了提高可读性。

您给出的两个示例之间没有真正的功能差异,但它们都非常接近简单的函数声明,这是不同的。添加括号是为了提高可读性,以便区分它们。

以下是每个片段的作用:

在两个片段的第一个片段中,第一个括号将被计算为所包含函数的值。然后这个值将被作为函数调用。所以最终该函数将被执行,这可能是您关心的。

在第二个代码片段中,外括号将被评估为包含声明为内联并立即执行的函数。同样,该函数将被执行,这可能仍然是您关心的。

两者都会执行相同的功能,因此不会有任何显着差异。

像您这样的代码片段和简单函数声明之间的区别:

您给出的功能也与以下相同。我刚刚添加了一个函数名称并分配了返回值以保证语法准确性,您现在可以忽略它。

// javascript...
var val =
function myFooFunc () {
alert("foo");
}();

但是,这很容易被误认为是简单的函数声明,这是不同的:

// javascript...
function myFooFunc () {
alert("foo");
}

请注意,这里唯一真正的区别是最后一个函数声明不会立即执行。其他人都是。因此,这是一种非常不同的行为(如果按名称调用,则简单声明可能会稍后执行,或者可能根本不会执行)。然而,通常很难立即看出语法上的差异,特别是当函数体变得非常长并且需要在屏幕上滚动时。

为什么函数会立即执行?

当一个函数在声明后立即执行时,该值通常会被返回到某个东西(它可能是赋值语句的一部分)。有时该函数会立即执行,因为它包含内部函数并用于为封闭的语句提供功能范围。

本质上,人们用括号括住“立即执行”的形式(您的两个片段,以及我的两个片段中的第一个),以便向其他开发人员提供该函数正在立即调用的视觉提示。它只是更容易阅读,因为您可能直到到达函数末尾(或根本注意到它们)才能捕获括号。

关于javascript - 为什么 JavaScript 函数调用要用括号括起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28245298/

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