如何将参数传递给javascript匿名函数

How to pass argument to javascript anonymous function

本文关键字:函数 javascript 参数传递      更新时间:2023-09-26

有人能向我解释为什么x是未定义的吗?不应该是123吗?

doSomething = (function(x) {
   alert(x)
})();
doSomething(123);

doSomething不是一个函数。它是undefined

doSomething = (function(x) {
   alert(x)
})();

这声明了一个匿名函数,立即执行它(()就是这样做的),然后将doSomething设置为返回值-undefined。您的匿名函数接受一个参数(x),但没有任何内容传递给它,所以x就是undefined

你可能想要这个:

doSomething = function(x) {
   alert(x)
};
doSomething(123);

您需要删除parens,现在定义函数并立即用空参数列表调用它。更改为:

doSomething = function(x) {
   alert(x)
}

然后你可以调用它。

这不是更好的方法吗?让它初始化,然后调用它传递一个参数?

doSomething = (function(x) {
    return(
            init = function(x){   
             alert(x)
            }
        )

})();
doSomething("test")