有人可以向我解释为什么x未定义?不应该是123?
doSomething = (function(x) {
alert(x)
})();
doSomething(123);
答案 0 :(得分:4)
doSomething
不是一个功能。它是undefined
。
doSomething = (function(x) {
alert(x)
})();
这声明了一个匿名函数,立即执行它(这是()
所做的),然后将doSomething
设置为返回值 - undefined
。您的匿名函数需要一个参数(x
),但没有任何参数传递给它,因此x
为undefined
。
你可能想要这个:
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")