为什么从本文中获取的代码片段会产生不同的结果,因为花括号的位置只有一个变化?
当开始大括号{在新行上时,test()返回undefined,并且警报中显示"no - it broke: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);
}Run Code Online (Sandbox Code Playgroud)
当括号与同一行时return,test()返回一个对象,并提醒"神奇".
function test()
{
return { /* <---- curly brace on same line */
javascript: "fantastic"
};
}
var r = test(); …Run Code Online (Sandbox Code Playgroud)我不会理解为什么以下函数不返回{bar:"hello"}而是返回undefined.
function foo2() {
return
{
bar: "hello"
};
}
Run Code Online (Sandbox Code Playgroud)