javascript - 自执行匿名函数中 (fn...)() 括号的用途? [JavaScript]

标签 javascript anonymous-function

<分区>

Possible Duplicate:
Location of parenthesis for auto-executing anonymous JavaScript functions?

问题是重复的 Location of parenthesis for auto-executing anonymous JavaScript functions?What do parentheses surrounding a object/function/class declaration mean?

真的很好奇,这段代码中括号的用途是什么:

(function() {})();

这看起来我可以很容易地写成:

var x=function(){};
(x)();

使用 jQuery 插件,我们会做类似的事情......

(function($) {})(jQuery);

括号是怎么回事?

最佳答案

有了圆括号(包围函数),您就不必声明一个名称,在命名空间中乱扔垃圾。而且,它们用于提醒代码的读者注意您正在使用自调用函数这一事实。

第二组括号实际上调用/调用您刚刚创建的(匿名)函数。由于 Javascript 函数实际上只是变量(或 CS 术语中的“第一类对象”),您刚刚创建了一个变量(在第一组括号中),您使用第二组调用它。

这是一个例子:

function callFunc(f) {
    return f("test");
}

callFunc(alert);

在示例中,f 实际上引用了函数alert,您在函数代码中用括号调用它。

关于javascript - 自执行匿名函数中 (fn...)() 括号的用途? [JavaScript],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3875915/

相关文章:

移动设备中的 JavaScript 错误

Eclipse JavaScript 代码格式化程序和 JSHint 匿名函数格式冲突

javascript - 为什么在 javascript 中,一个自调用的匿名函数会包围 jQuery onReady 回调?

javascript - 在 jQuery 对象和纯 js 对象之间转换?

javascript - 使用 contenteditable 时取消编辑模式的编程方式?

php - 通过 PHP 将 SQL 处理为 JSON 以用于气泡图

javascript Date(),从工作日数组中渲染,由 Date().getDay() 选择索引,reactjs

javascript - 是否可以访问匿名函数中的函数?

c# - 预期事件序列报告重复事件的测试助手

javascript - innerHTML 显示函数,而不是函数的返回值