- 主题:js里面,把数组定义成{}是什么意思?
我看到一段code,大概是
var a = {};
a[id++] = new A();
...
这里和
var a = [];
相比,有什么好处吗?
--
FROM 134.134.139.*
a={}是一个普通object,没有数组相关的函数
【 在 dpblue (deep blue) 的大作中提到: 】
: 我看到一段code,大概是
: var a = {};
: a[id++] = new A();
: ...................
--
FROM 114.249.239.*
了解,那么这么定义有什么好处吗?
【 在 Eliot (好警察) 的大作中提到: 】
: a={}是一个普通object,没有数组相关的函数
--
FROM 134.134.139.*
跟好处没什么关系
这就是声明一个对象……
如果是[]就是声明一个数组
【 在 dpblue (deep blue) 的大作中提到: 】
: 了解,那么这么定义有什么好处吗?
--
FROM 119.255.59.*
这么做可以使用变量传递属性名,属性名也可以不受限制(可以有空格等)
--
FROM 183.14.109.*
数组也行吧
【 在 zxdong262 (html5beta.com) 的大作中提到: 】
: 这么做可以使用变量传递属性名,属性名也可以不受限制(可以有空格等)
--
FROM 114.251.89.*
【 在 dpblue (deep blue) 的大作中提到: 】
: 我看到一段code,大概是
: var a = {};
: a[id++] = new A();
: ...
: 这里和
: var a = [];
: 相比,有什么好处吗?
Array-like object 而已,没有 Array.prototype 的系列东西也没有 .length
是不是好处看情况
也许显而易见的好处是 sparse array?
--
FROM 202.120.55.*
重点是不能通过带 prototype 的构造函数去创建一个 Array
换句话说,你没办法把某个类的子类做成 Array 类型
所以有这种既需要当数组用,又需要作为子类去继承某个父类的时候
就只好搞个普通的 Object 出来,然后把 Array.prototype 的函数拷贝进去
【 在 XeCycle (据说是小 X) 的大作中提到: 】
: Array-like object 而已,没有 Array.prototype 的系列东西也没有 .length
: 是不是好处看情况
: 也许显而易见的好处是 sparse array?
--
修改:withinsea FROM 123.119.150.13
FROM 123.119.150.13
看得心惊肉跳。干脆自己定义一个array接口,带有几个方法:get()/set()/itor()如何?
【 在 withinsea (在这个大喜的日子里,我们感到万分悲痛) 的大作中提到: 】
: 重点是不能通过带 prototype 的构造函数去创建一个 Array
: 换句话说,你没办法把某个类的子类做成 Array 类型
: 所以有这种既需要当数组用,又需要作为子类去继承某个父类的时候
: ...................
--
FROM 120.32.159.*
有毛好惊的
单继承的这样很正常啊
父类不能既是 Array 又是其它类型而已
能 mixin 就 ok
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 看得心惊肉跳。干脆自己定义一个array接口,带有几个方法:get()/set()/itor()如何?
--
修改:withinsea FROM 114.243.34.53
FROM 114.243.34.53