【发布时间】:2014-04-09 10:38:09
【问题描述】:
闭包代码很短:
var fn = function() {
return function() {
console.log(arguments);
}
}
(function(arg) {
console.log('bar');
})('foo');
为什么打印的是["foo"] 而不是bar?如果我注释掉 var fn = ... ,结果与预期一致,并打印 bar 。这两段代码怎么关联?
【问题讨论】:
-
看看代码有多漂亮!我喜欢它
-
既然您的问题已经得到解答,请考虑以下难题:
var a = d * e NEWLINE (d + e).blah() NEWLINE(1) 分号插入到哪里? (2) 你能提供在这个片段之前运行的代码吗?您的示例和此示例说明了为什么自动半插入首先是一个坏主意。它将编译器立即检测到的一个小而容易修复的编程错误变成了一系列陷阱,这些陷阱会通过意外更改程序的含义来困住粗心的程序员。 -
这几乎看起来像是一次拖钓尝试。这是您自己写的还是在某个地方找到的?
标签: javascript