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

时间:2014-10-27 20:14:29

标签: javascript

有人可以向我解释为什么x未定义?不应该是123?

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

doSomething(123);

3 个答案:

答案 0 :(得分:4)

doSomething不是一个功能。它是undefined

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

这声明了一个匿名函数,立即执行它(这是()所做的),然后将doSomething设置为返回值 - undefined。您的匿名函数需要一个参数(x),但没有任何参数传递给它,因此xundefined

你可能想要这个:

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

doSomething(123);

答案 1 :(得分:2)

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

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

然后你可以打电话给它。

答案 2 :(得分:0)

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

doSomething = (function(x) {

    return(
            init = function(x){   

             alert(x)
            }
        )


})();

doSomething("test")