论坛首页 Web前端技术论坛

关于js数组充当对象使用的疑问

浏览 2725 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-12   最后修改:2008-11-20

正常来说,js中,数组是数组,对象是对象。
如:

js 代码
  1. var  obj = {};   
  2. obj.a = 123;   
  3. obj.b = 'bbb';   
  4.   
  5. var  arr = [];   
  6. arr[0] = 1;   
  7. arr[1] = 'bbb';   

关联数组用对象,索引数组用数组。

但是数组本身也是对象,所以也有如下写法:

js 代码
  1. var  arr_obj = [];   
  2. arr_obj[0] = 1;   
  3. arr_obj[1] = 'bbbb';   
  4. arr_obj.a  = 1;   
  5. arr_obj.b  = 'bbb';   
  6. alert(arr_obj[0]+ '  ' + arr_obj[1] + '  ' + arr_obj.a + '  ' + arr_obj.b);   

如果我想要一个对象,里面附带一个数组,这样岂不是很方便吗?无需再定义一个对象的属性指明为数组。
请问,这样会有没有什么不妥之处?

 

   发表时间:2007-12-12  
js当中除了string number boolean undefined null都是对象,对象就是关联数组,所以数组是对象,自然就是关联数组,同理函数也是对象所以也是关联数组,以此类推
0 请登录后投票
   发表时间:2007-12-12  
这我都知道,我这样使用数组,是否有什么不妥?
0 请登录后投票
   发表时间:2007-12-12  
我自己回答一下(真是无奈啊),如果使用json跟服务器交换数据,
那么不能得到数组的对象属性,以下使用了json库,网上可以下载到
js 代码
  1. <script src="json2.js"></script>   
  2. <script>   
  3. var arr = [];   
  4. arr.b = 11;   
  5. arr[0] = 12;   
  6.   
  7. alert(arr.b);               //显示出期望结果 11   
  8. alert(JSON.stringify(arr)); //显示[12],没有把作为对象的属性11显示出来   
  9. </script>   

 

xieye 20071212

所以请有条件的使用。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics