我想写一个常见的确认方法,比如
var confirmDelete = function (fun) {
if (confirm("Do you want to delete " + arguments[1])) {
$(arguments[2]).remove();
fun(arguments[3]);
}
return false;
}
它适用fun
于一个参数,但我想适合两个或多个参数,我该怎么做?
我想写一个常见的确认方法,比如
var confirmDelete = function (fun) {
if (confirm("Do you want to delete " + arguments[1])) {
$(arguments[2]).remove();
fun(arguments[3]);
}
return false;
}
它适用fun
于一个参数,但我想适合两个或多个参数,我该怎么做?
在 JavaScript 中,您可以传递任意数量的参数。
如果你不通过它们,它们将是未定义的。
所以......你可以这样做:
var confirmDelete = function(arg1, arg2, arg3) {
if (typeof arg2 === 'undefined') {
arg2 = "default value for arg2";
}
if (typeof arg3 === 'undefined') {
arg3 = "default value for arg3";
}
// do more stuff...
}
您还可以在此处arguments
阅读有关神奇变量的信息。
你可以重写你的函数,比如
var confirmDelete = function fun(arg1, arg2) {
// number of parameter as your need
// TODO some stuff
fun(arg1 -1, arg2 +3); // call it recursively
return false;
}
每个 javascript Function 对象都有一个名为apply
. apply
将使用给定的上下文和给定的参数调用您的函数。
var confirmDelete=function(fun) {
if(confirm("Do you want to delete "+ arguments[1])) {
// remove the first two elements in arguments, and use the resulting array as a new set of
// arguments to fun
fun.apply(this, Array.slice(arguments, 2));
}
}