2010-05-03 64 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