2010-05-03 91 views

回答

2
  • 這不是一個數組
  • 這是幾乎對象不變,但你需要「:」而不是「=」
  • 值已經是不同的變量,或者是,如果語法是確定

這是實例化「對象常量」並用屬性和值填充它的語法。如果您將該值(整個事物)分配給另一個變量,那麼您將能夠獲得該屬性。

var rgb = { r: 1, g: 4, b: 6}; 
var rByItself = rgb.r; 
1

在Javascript中,{r:1, g:4, b:6}將是一個對象。假設你的對象是這樣聲明的:

var obj = {r:1, g:4, b:6}; 

然後你可以通過兩種方式檢索r,g和b的值。

方法1:

var red = obj.r; 
var green = obj.g; 
var blue = obj.b; 

方法2:

var red = obj['r']; 
var green = obj['g']; 
var blue = obj['b']; 
+4

那麼,語法實際上是錯誤的;等號應該是冒號。 – Pointy 2010-05-04 00:00:40

+0

糟糕,你是對的......我一次使用太多的語言。 ;) – 2010-05-04 14:44:56

9

JavaScript沒有關聯數組。因此,這是合法的:

var my_rgb_arr = [1, 4, 6] 

或者,這可以是法人:

var my_rgb_obj = { r: 1, g: 4, b: 6 }; 

訪問數組:

my_rgb_arr[0]; // r 
my_rgb_arr[1]; // g 
my_rgb_arr[2]; // b 

和對象:

my_rgb_obj.r; // r 
my_rgb_obj.g; // g 
my_rgb_obj.b; // b 

哪些你處理?

+0

聲明:「JavaScript沒有鍵控數組」 - 是錯誤的。數組是對象,所有本地對象都可以有屬性。 – Garrett 2010-05-05 14:57:15

+1

我將語言從「鍵控」改爲「聯想」以便更清晰。 – artlung 2010-05-05 20:12:49

1

你有什麼:{r=1, g=4, b=6}只能被解釋爲ECMAScript中的塊。因此它不是一個數組。

陣列和對象實例:

 
var myArray = [1, 4, 6]; 
var myObject = { r:1, g:4, b:6 }; 

塊示例:

 
var r, g, b; 
if(true) 
    {r=1, g=4, b=6}; 

代碼應當是可執行的,因爲發射和該代碼的結果發表。

+1

沒有必要使用'if(true)'; '{r = 1,g = 4,b = 6}'是一個有效的陳述。 – Gumbo 2010-05-05 02:58:06

+0

是的,{r=1, g=4, b=6}是一個有效的聲明(謝謝)。然而,這並不符合問題所描述的內容。 – Garrett 2010-05-05 21:41:43