/**
* 多个参数
* @param fn
* @param args
* @param scope
*/
function multipleArguments(fn,args,scope){
if(Object.prototype.toString.call(args)!="[object Array]"){
if(args!=null&&args!=undefined){
args = [args];
}
}
return function(){
//追加args,之后逐次追加参数
/*
第1次调用:
args+第1次调用传入的参数
第2次调用:
args+第1次调用传入的参数+第2次调用传入的参数
第3次调用:
args+第1次调用传入的参数+第2次调用传入的参数+第3次调用传入的参数
*/
/*
for(var i=0;i<arguments.length;i++){
args.push(arguments[i]);//将参数追加到args中
}
fn.call(scope||window,args);
*/ //只追加传入的args
/*
第1次调用:
args+第1次调用传入的参数
第2次调用:
args+第2次调用传入的参数
第3次调用:
args+第3次调用传入的参数
*/
var _args = [].concat(args);
for (var i = 0; i < arguments.length; i++){
_args.push(arguments[i]);
}
fn.call(scope||window,_args);
} }

具体使用例子如下:

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script type="text/javascript" src="./js/MultipleArguments.js"></script>
<script type="text/javascript">
window.onload=initFn; /**
* 初始化函数
*/
function initFn(){
console.info('123456~~~');
var addFn = multipleArguments(add,[1,2]);
var result = addFn(3,4);
console.info('result:',result); var result1 = addFn(5,6);
console.info('result1:',result1); var result2 = addFn(7,8);
console.info('result2:',result2); var addFn1 = multipleArguments(add,[9,10]);
var result3 = addFn1(11,12);
console.info('result3:',result3); var result4 = addFn(13,14);
console.info('result4:',result4);
} /**
*加法
*/
function add(){
console.info("arguments:",arguments);
var result = 0;
for(var i=0;i<arguments.length;i++){
result+=arguments[i];
}
return result;
}
</script>
</head>
<body> </body>
</html>

最新文章

  1. 使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)
  2. :before\:after伪元素用法
  3. NFS性能优化
  4. Java多线程基础(一)
  5. Java堆内存
  6. solr4.5 schema.xml配置文件
  7. CentOS6.5 编译安装lnmp环境
  8. Java基础知识强化12:Java中运用数组的四种排序方法
  9. BC 65 ZYB&#39;s Premutation (线段树+二分搜索)
  10. 1.2UISwitch 1.3 自定义UIswitch 1.4pickerView
  11. BroadcastReceiver总结
  12. KNN算法的理解
  13. iOS textfield 限制输入字数长度
  14. jstl 处理Date 时间
  15. 关于Vuex的初步使用
  16. [Codeforces 946D]Timetable
  17. 程序猿想聊天 - 創問 4C 團隊教練心得(二)
  18. DevExpress AspxGridView分页使用隐藏系统默认英文分页
  19. SAP MM MI01事务代码里的批次确定
  20. every循环

热门文章

  1. ubuntu配置定时任务crontab何保存退出
  2. CentOS7编译安装Keepalived2.0.19
  3. vector中erase()与insert()用法
  4. java读取HDFS压缩文件乱码
  5. restql 学习三 查询语言简单说明
  6. [无效]网络流之Dinic算法
  7. SpringData JPA一对多多对一多对多关联
  8. Salesforce 开发整理(二)报表开发学习
  9. 对C++11中的`移动语义`与`右值引用`的介绍与讨论
  10. Azure容器监控部署(下)