var obj = {
name:'lily',
year:'20'
}
alert(obj.year);
alert(obj['year']);
这两种都能访问到year的值。难道对象和数组没区别?
2013-10-18 14:09
提问者采纳
两个都是获取对象值的方式。
第二个用变量名获取对象值的时候很有用。
|
1
2
3
4
5
6
7
8
9
|
var
obj = {
name:
'lily'
,
year:
'20'
}
alert(obj.year);
var
y =
'year'
;
// 用变量获取
alert(obj[y]);
|
-
提问者评价
-
大家回答的都很好!采纳你了
评论
11
0
按默认排序 按时间排序
其他2条回答
2013-10-18 14:22
绛紫方糖
六级
对象的属性确实可以通过类似于通过访问数组的中括号形式进行访问。
原理上来讲,是js这样设计的,很多弱类型语言都是如此设计。
可是并不能理解为对象跟数组没区别,例如说,你可以使用Array类型方括号的形式访问Object类型数据的属性。但是反过来,不能使用Object的点号访问Array类型数据的内容。
在js里,Key对应Value的数据结构,其实都是Object类型的,Array类型的数据都是一维的,数字下标的数据集合。
另外,二楼给你举得例子是没问题的,非常实用,插一句,还有另一种情况
就是你要访问的key是有空格的,也可以使用这种方式,例如说 people['first name'],这种情况是没法使用点号进行访问的。
最后,一楼的那个理解完全是错误的,这跟JSON没任何关系
原理上来讲,是js这样设计的,很多弱类型语言都是如此设计。
可是并不能理解为对象跟数组没区别,例如说,你可以使用Array类型方括号的形式访问Object类型数据的属性。但是反过来,不能使用Object的点号访问Array类型数据的内容。
在js里,Key对应Value的数据结构,其实都是Object类型的,Array类型的数据都是一维的,数字下标的数据集合。
另外,二楼给你举得例子是没问题的,非常实用,插一句,还有另一种情况
就是你要访问的key是有空格的,也可以使用这种方式,例如说 people['first name'],这种情况是没法使用点号进行访问的。
最后,一楼的那个理解完全是错误的,这跟JSON没任何关系
评论(15)
5
0
2013-10-18 14:08
源o0Forever
六级

336







123下一页>