Tại sao các đoạn mã dưới đây, được lấy từ bài viết này , lại tạo ra các kết quả khác nhau do chỉ một thay đổi duy nhất về vị trí của các dấu ngoặc nhọn?
Khi dấu ngoặc nhọn mở {
trên một dòng mới, test()
trả về undefined
và "no - it break: undefined" được hiển thị trong cảnh báo.
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);
}
Khi dấu ngoặc nhọn trên cùng dòng với return
, test()
trả về một đối tượng và "tuyệt vời" được cảnh báo.
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
hơi khác so với những nơi khác và dấu ngắt dòng "có nghĩa là nhiều hơn" ở chỗ đó hơn là "giữa dòng".