2011-03-04 41 views
6

我在一塊的JS代碼看到了這一點:var {u,v,w} = x;在Javascript中表示?

var {status, headers, body} = res; 

它有什麼作用?

+1

你在哪裏看到了嗎? – 2011-03-04 06:31:33

+0

在一些helma.org源代碼中。 – 2011-03-04 06:34:46

+2

請參閱[JavaScript中的解構賦值 - 堆棧溢出](http://stackoverflow.com/questions/204444/destructuring-assignment-in-javascript)。請注意,Javascript 1.7(超過1.5的所有內容,實際上)僅限於Mozilla。 – ephemient 2011-03-04 06:39:18

回答

1

不錯的方法,可以一次從對象 設置幾個變量(打開Firebug並粘貼到控制檯)

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

看起來像一個名爲res的變量的解構嘗試。我從來沒有見過,在Javascript和Chrome的控制檯表明它是一個錯誤:

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

Firebug的控制檯不抱怨然而但聲明似乎沒有任何效果:

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

我讀了一些與你的表情不同的東西here。這可以幫助ü

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