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

What does Array.remove = function() {...} mean?

本文关键字:是什么 意思 remove function Array      更新时间:2023-09-26

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

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);

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

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

这意味着您正在向全局Array对象添加一个名为"remove"的方法。如果它已经有了这个名称的方法,那么您将覆盖它

这在旧的浏览器中兼容吗?

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

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

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

您不覆盖array.remove。它是一种静态方法,"允许您简单地从数组中删除一个项目或一组项目"

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