2011-03-04 15 views
6

Widziałem to w kawałku kodu JS:Co znaczy var {u, v, w} = x; znaczy w JavaScript?

var {status, headers, body} = res; 

Co on robi?

+1

Gdzie pan widzi? –

+0

W jakimś kodzie źródłowym helma.org. –

+2

Zobacz [Zniszczenie przypisania w JavaScript - przepełnienie stosu] (http://stackoverflow.com/questions/204444/destructuring-assignment-in-javascript). Zauważ, że JavaScript 1.7 (wszystko poza 1.5, naprawdę) jest skutecznie tylko w Mozilli. – ephemient

Odpowiedz

1

miły sposób ustawić kilka zmiennych naraz z obiektu (otwarty Firebug i wklej to do konsoli)

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

Wygląda na próbę destrukturyzacji dla zmiennej o nazwie res. Nigdy nie widziałem, że w konsoli JavaScript Chrome i sugeruje, że jest to błąd:

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

konsoli Firebug na Firefox 4b12 nie skarżą się jednak, lecz stwierdzenie wydaje się nie mieć wpływu:

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

Czytam coś innego niż Twoja ekspresja: here. Może to pomóc u

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