函数(args)中的(foo)是什么意思?

3
我一直在苦苦钻研Javascript对象。
function(args){ ... }(foo)中,(foo)的含义是什么?

你想传递给 anonymous() 函数的 args!基本上,你正在使用参数 foo 调用匿名函数。 - AllTooSir
5个回答

3

您正在声明一个函数,然后紧接着就调用它。您可以分两步完成:

function f(args){}

f(foo);

单步和匿名:

(function(args){})(foo);

@jgroenen 没错 :) 谢谢,我们还可以在 jQuery 和模块中看到这种符号。 - TecHunter
1
顺便说一句:我认为等价的写法应该是 var f = function(args){}; f(foo);,因为匿名函数是在运行时动态声明的。 - jgroenen

2
当你看到一个带有括号(foo)function (args) { },它是一个立即调用函数表达式(IIFE - 发音为'iffy')。
function (args) { } (foo);

基本上和...是一样的。
var foofun = function (args) { };
foofun(foo);

或者

function foofun(args) { }
foofun(foo);

这个表达式也是匿名的,因为函数没有被存储到变量中,也没有名称。
所以foo只是args参数的一个参数。

1
这是一个立即调用的函数表达式(IIFE)的例子。在匿名函数声明后,使用参数foo立即调用它。
foo可能只是任何对象的示例,您可以将其作为参数传递给即将立即调用的函数声明。

1
该函数是匿名的(没有名称),您使用参数foo调用该函数。

0

您的语句可以改写为:

function xy(args) {
   //code here
}

xy(foo);

所以基本上你只是在定义函数后直接调用它,并将变量foo作为参数传递。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接