Pau*_*son 12 javascript arrays
在Javascript中很常见的是类似于Array的对象,它与Array类型的构建有一些相似之处,但没有它的所有方法或功能.因此,有一些技巧可以将类似Array的对象转换为"真正的"数组以进行进一步操作.
在Javascript:The Definitive Guide中甚至提到了这一点.
问题是为什么这种模式如此常见?在所有这些情况下,为什么不更喜欢内置的Array类型呢?
好吧,谈到核心 Javascript对象,这arguments是一个很好的例子.
在这种情况下,它从一开始就是一个类似于数组的对象,已经作为一个简单的对象出现在ECMAScript第1版规范中.
为什么?我认为当时只有四种内置Array方法,也许设计师并不认为它过多,后来提出了改变,但微软(TC39委员会的一部分)没有批准改变,害怕打破网络一直存在.
现在我想到主机对象 DOM,NodeLists我认为Array由于这些对象的动态行为,我们不想使用本机类型.
NodeLists通常是活动对象,它们的结构反映了底层DOM结构的任何变化......
我个人喜欢数组对象,因为它们非常轻量级,在ECMAScript 5之前,核心方法有很多限制,关于用户定义的类数组对象的使用.
例如,apply在ECMAScript <= 3中,函数对象的方法只允许实数数组或参数对象作为其第二个参数,现在在ES5中,以下是可能的:
var arrayLike = {0: 'hello ', 1:'world', length:2};
(function (a,b) { alert(a+b); }).apply(null, arrayLike);
Run Code Online (Sandbox Code Playgroud)
也可以看看:
| 归档时间: |
|
| 查看次数: |
1130 次 |
| 最近记录: |