2011-03-04 9 views
6

Tôi đã thấy điều này trong một đoạn mã JS:var {u, v, w} = x; có nghĩa là trong Javascript?

var {status, headers, body} = res; 

Nó làm gì?

+1

Nơi mà bạn đã nhìn thấy không? –

+0

Trong một số mã nguồn helma.org. –

+2

Xem [Chuyển nhượng cấu trúc trong JavaScript - Ngăn xếp ngăn xếp] (http://stackoverflow.com/questions/204444/destructuring-assignment-in-javascript). Lưu ý rằng Javascript 1.7 (mọi thứ vượt quá 1.5, thực sự) chỉ có hiệu quả với Mozilla. – ephemient

Trả lời

1

phương pháp tốt đẹp để thiết lập vài biến cùng một lúc từ một đối tượng (firebug mở và dán này để an ủi)

var status=4; 
var headers=4; 
var body=4; 

var res = {status:1, headers:2, body:3}; 
window.alert(status); 
var {status, headers, body} = res; 
window.alert(status); 
0

Có vẻ như một nỗ lực phá hoại trên biến có tên res. Tôi chưa bao giờ nhìn thấy rằng trong Javascript và Chrome console gợi ý rằng đó là một lỗi:

> var res = [ 1, 2, 3 ]; 
> var {status, headers, body} = res; 
SyntaxError: Unexpected token { 

Firebug console trên Firefox 4b12 không phàn nàn tuy nhiên nhưng báo cáo kết quả dường như không có hiệu lực:

> var res = [ 1, 2, 3 ]; 
> var {status, headers, body} = res; 
> status 
undefined 
> headers 
undefined 
> body 
undefined 
1

tôi đọc một cái gì đó khác với biểu thức của bạn here. điều này có thể giúp u

var { a:x, b:y } = { a:7, b:8 }; 
Print(x); // prints: 7 
Print(y); // prints: 8