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)
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)
这是否是一件好事还有待商 .。它打破了一些编程原则。