锁定老帖子 主题:javascript面向对象技术基础(二)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-30
hanjs 写道 var array = new Array("no1","no2");
array["po"] = "props1"; alert(array.length); //2 //对于数组来说,array[0]同array["0"]效果是一样的(?不确定,测试时如此) alert(array[0] + "_" + array["1"] + "_" + array.po);//no1_no2_props1 这段代码有疑问啊,为何length没有增加呢?我是这样看的。 其内部的length属性增加的时候,判断了标注,默认就是取length+1,可以上面赋值的时候制定了po,因为不是number类型,导致length没有进行加1处理。因为typeof array是object,因此只能通过 array.po访问这样添加的值. lz,你写的这个第一篇帖子呢 javascript面向对象技术基础(一) ?我翻了好多页也没有看到,能否提供下?谢谢 不知道下面这个例子是不是和你所说的相悖: var a = new Array(); alert(a.length); //0 a[9] = "s"; alert(a.length); //10 你看看我的博客吧,那个帖子没有人回,早不知道去哪儿了.... |
|
返回顶楼 | |
发表时间:2008-12-30
你指定了9,是number,那么肯定可以处理的。我说的数组按其本意是只接受数字作为下标的。如果增加了string的,那么就和map差不多了,形成了key与value的形式
|
|
返回顶楼 | |
发表时间:2009-01-04
风雪涟漪 写道 因为 firefox 忽略逗号后面为空的情况了。。。如 a=[1,2,] 在firefox 只有2个 ie里认为还有第三个元素是undefined.浏览器差异把。一个逗号。。。。呵呵 呵呵,的确,这也就解释了为什么{name:fornever,age:10,}可以在火狐下通过但是在IE下通不过了 |
|
返回顶楼 | |
发表时间:2009-02-22
= =这个世界上有一种工具叫搜索。。。
|
|
返回顶楼 | |
发表时间:2009-02-23
delete删除数组的元素时,是把该元素 赋值为undefined,而delete删除属性的时候,是直接删除掉,在使用for/in列举属性时不再可以列举。
|
|
返回顶楼 | |
发表时间:2009-04-29
hanjs 写道 你指定了9,是number,那么肯定可以处理的。我说的数组按其本意是只接受数字作为下标的。如果增加了string的,那么就和map差不多了,形成了key与value的形式 这个应该是给对象添加了一个属性,属性名称是key。值是value |
|
返回顶楼 | |
发表时间:2009-04-29
风雪涟漪 写道 因为 firefox 忽略逗号后面为空的情况了。。。如 a=[1,2,] 在firefox 只有2个 ie里认为还有第三个元素是undefined.浏览器差异把。一个逗号。。。。呵呵 这一点还是认为IE做的比较正确。 |
|
返回顶楼 | |
发表时间:2009-05-04
很不错,赞一个,收藏系列
|
|
返回顶楼 | |