JS函数中的参数包括另一个函数,可以吗?
以下代码为啥不能按预期执行呢?functionopenx(func,tx){if(tx==0){func}}我执行:openx("alert('你好!')",1)发现还是...
以下代码为啥不能按预期执行呢?
function openx(func,tx){
if (tx==0){func}
}
我执行:openx("alert('你好!')",1)
发现还是能跳出弹出窗口,请问我怎么做才能符合我动态调用函数的目的? 展开
function openx(func,tx){
if (tx==0){func}
}
我执行:openx("alert('你好!')",1)
发现还是能跳出弹出窗口,请问我怎么做才能符合我动态调用函数的目的? 展开
3个回答
展开全部
arguments可以读到所有传进来的参数
function useFunction(fun){
//arguments是一个数组,里面是所有传进来的参数,第一个参数就是传进来的fun,函数名。以下代码是通过判断参数的个数来决定要做什么事情。
if(arguments.length==1)
return fun(0,0);
if(arguments.length==2)
return fun(0,arguments[1]);
return fun(arguments[1],arguments[2]);
}
function meFunction(n,m){
document.write('n='+n+'<br />m='+m+'<br />');
if(n>m){
for(var i=m;i<n;i++)
document.write(i+'<br />');
}
for(var i=n;i<m;i++)
document.write(i+'<br />');
}
useFunction(meFunction);
useFunction(meFunction,5);
useFunction(meFunction,10,5);
useFunction(meFunction,1,5);
function useFunction(fun){
//arguments是一个数组,里面是所有传进来的参数,第一个参数就是传进来的fun,函数名。以下代码是通过判断参数的个数来决定要做什么事情。
if(arguments.length==1)
return fun(0,0);
if(arguments.length==2)
return fun(0,arguments[1]);
return fun(arguments[1],arguments[2]);
}
function meFunction(n,m){
document.write('n='+n+'<br />m='+m+'<br />');
if(n>m){
for(var i=m;i<n;i++)
document.write(i+'<br />');
}
for(var i=n;i<m;i++)
document.write(i+'<br />');
}
useFunction(meFunction);
useFunction(meFunction,5);
useFunction(meFunction,10,5);
useFunction(meFunction,1,5);
参考资料: http://guozhiwei.javaeye.com/blog/715128
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function openx(func,tx){
if (tx==0){func}
}//关键是下面这句
openx((function(e/*参数设置*/){
alert('你好'+e/*使用这个参数*/)
})(/*参数中的e*/'吗?'),0)
if (tx==0){func}
}//关键是下面这句
openx((function(e/*参数设置*/){
alert('你好'+e/*使用这个参数*/)
})(/*参数中的e*/'吗?'),0)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询