array.splice =什么意思?

nel*_*owl 4 javascript arrays jquery function

我想了解该代码片段的含义。“ saveTo”是一个数组,程序员将一个function()分配给了splice方法。我不明白这是什么意思。那是一个超越吗?return参数的含义是什么?为什么函数在拼接需要2个或更多参数的情况下不接受任何参数?

    saveTo.splice = function() {
        if (saveTo.length == 1) {
            $("#send").prop("disabled", true);
        }
        return Array.prototype.splice.apply(this, arguments);
    };
Run Code Online (Sandbox Code Playgroud)

Jam*_*iec 5

Javascript使您可以在运行时重新分配方法。在这种情况下,程序员正在做的是splice数组的这个特定实例上重新分配以调用jQuery方法。除此之外,它的工作方式与调用它们时的现有接头完全相同return Array.prototype.splice.apply(this, arguments);-意味着此方法只是arguments传递给它的任何东西。

这是一个演示:

var myArray = [1,2,3,4];
console.log("Splice before re-assing: ", myArray.splice(1,1));

// reset it.
myArray = [1,2,3,4];
myArray.splice = function(){
    console.log("From inside new splice function");
    
    return Array.prototype.splice.apply(this, arguments);
}


console.log("Splice after re-assiging: ", myArray.splice(1,1));
Run Code Online (Sandbox Code Playgroud)

这是否是一件好事还有待商 .。它打破了一些编程原则。