Array.remove = function(){...}是什么意思?

时间:2015-03-01 19:19:29

标签: javascript arrays

我遇到了一段我无法理解的代码 - :

Array.remove = function(array, from, to) {
    var rest = array.slice((to || from) + 1 || array.length);
    array.length = from < 0 ? array.length + from : from;
    return array.push.apply(array, rest);
};

这是什么意思?是否意味着我超越了我的网络浏览器的默认remove()功能?这在旧版浏览器中是否兼容?

更令人困惑的是如何调用函数 - :

Array.remove(foo, bar);

可以看出,当函数列出三个形式参数时,有两个实际参数。函数如何知道使用哪一个?

2 个答案:

答案 0 :(得分:0)

  

这是什么意思?是否意味着我超越了我的网络浏览器的默认remove()函数?

这意味着您要向全局Array对象添加一个名为“remove”的方法。如果它已经有了一个名称的方法,你就会覆盖它。

  

这在旧浏览器中是否兼容?

是的,几乎任何浏览器都允许你这样做。

  

可以看出,当函数列出三个形式参数时,有两个实际参数。函数如何知道使用哪一个?

Javascript并不关心您传递给函数的参数数量。它将按顺序匹配提供的参数,并将undefined分配给任何没有提供值的参数。

答案 1 :(得分:0)

您不能覆盖array.remove。它是一种静态方法:&#39;允许您从数组中删除项目或一组项目&#39;

来源:http://ejohn.org/blog/javascript-array-remove/