带有 () 的 Javascript 语法 - 函数作用域

标签 javascript

<分区>

Possible Duplicate:
JavaScript scope and closure

我对下面的 Javascript 语法不是很熟悉。任何人都可以对这个街区的感觉有所了解吗?为了什么目的?

(function foo() {
    alert('bar');
})();

提前致谢。

最佳答案

这对我来说似乎是不好的做法(命名闭包函数),因为它会导致浏览器不一致。

以下面的代码为例

(function foo() {
    alert('bar');
})();
foo();

在 Internet Explorer 中,您将收到 2 条警报,因为它实际上将函数创建为名为 foo 的全局函数。

在 Chrome 中,它只会提醒一次,并且 foo 没有全局声明,所以你会得到一个 javascript 错误 foo is not defined

通常你不会给闭包函数起一个名字

(function() { // notice you don't see foo anymore
    alert('bar');
})();

关于带有 () 的 Javascript 语法 - 函数作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007924/

相关文章:

javascript - 在 DOM 中嵌入任意 JSON 的最佳实践?

javascript - 为什么检查 Firebase 中是否存在子项总是返回 false?

javascript - react native : is it possible to stop PanResponder event inside onPanResponderMove?

javascript - knockout 复选框切换 css 类并在单击时切换选中

javascript - 动态添加到html元素中

javascript - 检查元素是否不存在

javascript - 国家代码后面的0怎么去掉

javascript - 弹出 div 在浏览器调整大小时收缩

c# - 我如何从 javascript 调用 C# 函数?

javascript - 从phoneGap的SQlite DB检索值时出错