mar*_*tin 6 javascript arrays object
我知道,因为javascript允许对象的数字键,因此技术上可能存在类似数组的对象,但为什么它们变得普遍?
也许这个想法是这些类似数组的对象不仅具有数字键,例如arguments具有callee属性,因此它们不能是适当的数组来容纳这些属性.
但是在javascript中,将数组视为对象并使用非数字键是完全有效的:
var myArguments = [];
myArguments[0] = 0;
myArguments['callee'] = function(){console.log('callee')};
Run Code Online (Sandbox Code Playgroud)
如果对象是类似数组的,并且可以从访问函数中获益,否则它将从数组原型继承,那么使它成为类似数组的对象会有什么好处呢?
编辑:如果在我的问题中不清楚,像对象这样的数组就像arguments是具有从零开始的连续数字属性的对象,并且具有比最高数字键小1的长度属性.它也不从数组原型继承,也不提供对数组方法的访问.
小智 -3
实际上 JS 中的数组是一个对象:)
只要你需要数组,创建类似数组的对象就不是个好主意,因为 JS 引擎优化了数组的速度。然而,这是可能的。
| 归档时间: |
|
| 查看次数: |
509 次 |
| 最近记录: |