我想写一个像
这样的常用确认方法var confirmDelete = function (fun) {
if (confirm("Do you want to delete " + arguments[1])) {
$(arguments[2]).remove();
fun(arguments[3]);
}
return false;
}
fun
使用一个参数可以正常工作,但我想适合两个或更多参数,我该怎么做?
答案 0 :(得分:0)
每个javascript函数对象都有一个名为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));
}
}
答案 1 :(得分:0)
在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
变量here。
答案 2 :(得分:0)
您可以重写您的功能
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;
}