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ề undefinedvà "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);
}
returnhơ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".