为什么代码片段如下,取自这篇文章,产生不同的结果,由于只在大括号的放置一个变化?
当左花括号{
在新行上时,test()
返回undefined
,并且警报中显示“ no-it break:undefined”。
function test()
{
return
{ /* <--- curly brace on new line */
javascript: "fantastic"
};
}
var r = test();
try {
alert(r.javascript); // does this work...?
} catch (e) {
alert('no - it broke: ' + typeof r);
}
当花括号与处于同一行时return
,test()
将返回一个对象,并警告“奇妙”。
function test()
{
return { /* <---- curly brace on same line */
javascript: "fantastic"
};
}
var r = test();
try {
alert(r.javascript); // does this work...?
} catch (e) {
alert('no - it broke: ' + typeof r);
}
return
与其他地方略有不同,换行符在该位置“比在中间位置”的含义更多。