2009-09-08 59 views
0

有什么特别的理由,这种构造不会在JS中工作? (JSLint的不接受它。)Esoteric JS问题

(function(function(){ 

    }){ 

})() 

我可以看到这种类型的链接事情永远,或者至少就一个希望/需要。

有没有人有任何想法?

+3

'函数(){...}'是不是一个有效的参数名称,所以是不是在另一个函数的参数列表有效。你是否想过类似'(function(foo){...})(function(){...})'? – 2009-09-08 19:16:23

+0

您的第二个_function_是参数值,并且是参数_name_的位置。它就像下面的“5”:function abc(5){....} – NVRAM 2009-09-08 19:31:12

+0

我将一个函数的返回值作为参数传递给下一个函数。这是无效的JS。 – jerome 2009-11-06 19:02:24

回答

0

嗯......是的,它不会工作,因为在匿名函数的参数列表中嵌入一个匿名函数是没有意义的。你想指出什么,在那里?

0

您可以创建一个接受函数作为参数的匿名函数,并立即传给另一个匿名函数:

(function(fn) { })(function() { }) 

但我想不出做一个单一的有用的原因。

3

您是不是要找:

(function() { 
// ... 
})((function() { 
// ... 
})());