js多个参数(追加参数)
2024-10-20 08:24:06
/**
* 多个参数
* @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>
最新文章
- 使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)
- :before\:after伪元素用法
- NFS性能优化
- Java多线程基础(一)
- Java堆内存
- solr4.5 schema.xml配置文件
- CentOS6.5 编译安装lnmp环境
- Java基础知识强化12:Java中运用数组的四种排序方法
- BC 65 ZYB&#39;s Premutation (线段树+二分搜索)
- 1.2UISwitch 1.3 自定义UIswitch 1.4pickerView
- BroadcastReceiver总结
- KNN算法的理解
- iOS textfield 限制输入字数长度
- jstl 处理Date 时间
- 关于Vuex的初步使用
- [Codeforces 946D]Timetable
- 程序猿想聊天 - 創問 4C 團隊教練心得(二)
- DevExpress AspxGridView分页使用隐藏系统默认英文分页
- SAP MM MI01事务代码里的批次确定
- every循环
热门文章
- ubuntu配置定时任务crontab何保存退出
- CentOS7编译安装Keepalived2.0.19
- vector中erase()与insert()用法
- java读取HDFS压缩文件乱码
- restql 学习三 查询语言简单说明
- [无效]网络流之Dinic算法
- SpringData JPA一对多多对一多对多关联
- Salesforce 开发整理(二)报表开发学习
- 对C++11中的`移动语义`与`右值引用`的介绍与讨论
- Azure容器监控部署(下)