Khi xem mã Javascript cho SDK bổ sung của Mozilla (Firefox), tôi thấy loại khai báo biến mà tôi chưa từng thấy trước đây:Javascript - Chỉ định nhiều biến cho thuộc tính đối tượng sử dụng dấu ngoặc nhọn trong khai báo biến
var { foo, bar } = someFunction("whatever"); // just an example
Xem các dấu ngoặc nhọn đó xung quanh tên biến? Hóa ra, đây là một cách để gán các giá trị của các thuộc tính của một đối tượng cho nhiều biến cùng một lúc. Nó có vẻ tương tự như destructuring assignment hoặc list
của PHP, ngoại trừ thuộc tính đối tượng thay vì mảng.
Tôi thực sự tìm thấy điều này thông qua một số không quan trọng, vì dường như không có tài liệu về nó. Hãy xem mã này:
function gimmeAnObject() {
return {
foo: "hey",
bar: "sup"
};
}
console.log(gimmeAnObject()); // Object { foo="hey", bar="sup" }
var { foo, bar } = gimmeAnObject();
console.log(foo); // hey
console.log(bar); // sup
Tôi cũng nhận thấy rằng điều này chỉ hoạt động trong Firefox. Thay vào đó, Chrome sẽ gặp lỗi: "Cú pháp không bắt buộc: Mã thông báo không mong muốn {". Điều đó giải thích tại sao tôi không nhìn thấy nó trước khi tôi bắt đầu xem xét mã bổ sung của Firefox.
Có ai khác nhìn thấy loại khai báo biến này trước đây không? Tại sao tôi không thể tìm thấy bất kỳ tài liệu nào về nó? Kể từ khi nó chỉ hoạt động trong Firefox, tôi nghĩ rằng nó có thể là một điều Mozilla, nhưng tôi thậm chí không thể tìm thấy bất cứ điều gì về nó trên MDN. Sau đó, một lần nữa, có lẽ tôi chỉ không biết những gì để tìm kiếm.
bản sao có thể có của [Khai báo liên tục với khối] (http://stackoverflow.com/questions/10199229/constant-declaration-with-block) –
Tìm thấy câu hỏi này trong khi soạn một câu hỏi gần như giống hệt của riêng tôi :) – Motti