创建类似javascript数组的对象的优点是什么?
可能重复:创建类似javascript数组的对象的优点是什么?,javascript,Javascript,可能重复: Javascript具有类似于数组的本机对象(例如参数、节点列表) 我想知道: 创建类似数组的对象有哪些优点 什么时候创建类似数组的对象(而不是创建常规数组对象)是个好主意 您从错误的角度来看它:早期版本的Java(Live)脚本没有数组,只有对象。实际上,数组是一个扩展对象(索引在内部转换为字符串!)。所以数组是一个对象,就像参数是一个对象。。。有一些重叠,一些差异 回答您的问题:您永远不可能真正创建一个arguments对象,它只是函数固有的,您应该将它们视为只读对象 节点列表
Javascript具有类似于数组的本机对象(例如参数、节点列表) 我想知道:
您从错误的角度来看它:早期版本的Java(Live)脚本没有数组,只有对象。实际上,数组是一个扩展对象(索引在内部转换为字符串!)。所以数组是一个对象,就像
参数是一个对象。。。有一些重叠,一些差异
回答您的问题:您永远不可能真正创建一个arguments
对象,它只是函数固有的,您应该将它们视为只读对象
节点列表是对象,由document.getElementsByTagName('a')之类的东西返回
,它们的优点是(当然,IE除外)它们提供了两种简洁的方法:
var inputs = document.getElementsByTagName('input');
var userNameIn = inputs.namedItem('username');//Arrays don't have this
那你什么时候应该用什么?好的,处理节点:10次中有9次你最好使用节点列表,参数对象是你在函数中需要的。因为JS是一种函数式语言,所以您非常需要它们
也就是说,这其实没什么大不了的:您可能遇到过这样的代码:
var myArgs = Array.prototype.slice.apply(arguments,[0]);
这只是借用了数组原型中的slice方法,并像调用arguments对象的方法一样调用它。
这就是要说的,真的。这里没有明确的答案,只有那句古老的咒语:跟着你的直觉走。尝试,失败,学习,再尝试
只要知道,无论你做什么,你都可以借用原型(甚至实例)方法,一切都可以追溯到母对象。原型原型原型。我的问题是“什么时候我应该创建自己的类/对象数组”,这有什么好处吗?我想你说的“类/对象数组”是指对象文字。有很多好处:分配方法、传递ajax调用和解析为assoc数组。。。这就是JS的真正意义所在,我想你应该什么时候使用它呢?当数据要发送到函数或服务器时。