Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建类似javascript数组的对象的优点是什么?_Javascript - Fatal编程技术网

创建类似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的真正意义所在,我想你应该什么时候使用它呢?当数据要发送到函数或服务器时。