我一直在努力处理 Javascript 对象。
(foo)
是什么function(args){ ... }(foo)
意思?
您正在声明一个函数,然后立即调用它。您可以分两步完成:
function f(args){}
f(foo);
单步和匿名:
(function(args){})(foo);
当您看到function (args) { }
后跟括号的 a 时(foo)
,它是一个立即调用的函数表达式(IIFE - 发音为 'iffy')。
function (args) { } (foo);
基本上是一样的
var foofun = function (args) { };
foofun(foo);
或者
function foofun(args) { }
foofun(foo);
该表达式也是匿名的,因为该函数没有存储到 var 中并且没有名称。
所以这foo
只是参数的args
参数。
immediately invoced function expression
这是(IIFE)的一个例子。声明匿名函数后,立即通过使用参数调用它来调用它foo
。
foo
可能只是您可以作为参数传递给即将被立即调用的函数声明的任何对象的示例。
该函数是匿名的(没有名称),并且您使用参数 foo 调用该函数
您的陈述可以重写为:
function xy(args) {
//code here
}
xy(foo);
所以基本上你只是在定义后直接调用函数并将变量foo
作为参数传递。