高阶函数之函数柯里化function currying
2015-09-01 16:43
435 查看
var cost = (function(){
var args = [];
return function(){
if(arguments.length === 0){
var money = 0;
for(var i=0,l=args.length; i<l; i++){
money += args[i];
}
return money;
}else{
[].push.apply(args,arguments);
}
}
})();
cost(100);
cost(200);
cost(300);
console.log(cost());
/*函数节流*/
var throttle = function(fn,interval){
var _self = fn,
timer,
firsttime = true;
return function(){
var args = arguments,
_me = this;
if(firsttime){
_self.apply(_me,args);
return firsttime = false;
}
if(timer){return false;}
timer = setTimeout(function(){
clearTimeout(timer);
timer = null;
_self.apply(_me,args);
},interval || 500);
}
}
window.onresize = throttle(function(){
console.log(1);
},5000);
var args = [];
return function(){
if(arguments.length === 0){
var money = 0;
for(var i=0,l=args.length; i<l; i++){
money += args[i];
}
return money;
}else{
[].push.apply(args,arguments);
}
}
})();
cost(100);
cost(200);
cost(300);
console.log(cost());
/*函数节流*/
var throttle = function(fn,interval){
var _self = fn,
timer,
firsttime = true;
return function(){
var args = arguments,
_me = this;
if(firsttime){
_self.apply(_me,args);
return firsttime = false;
}
if(timer){return false;}
timer = setTimeout(function(){
clearTimeout(timer);
timer = null;
_self.apply(_me,args);
},interval || 500);
}
}
window.onresize = throttle(function(){
console.log(1);
},5000);
相关文章推荐
- Talend 显示隐藏控件-thashmap
- Jquery
- Docker中的Volume
- 密码破解之Esxi重置root密码
- POJ 3268 Silver Cow Party
- TCP FIN_WAIT_2状态问题分析
- Android问题集(一)——从fragment跳转到另一个Activity
- 09.01,学习习题
- 历史不会偏袒任何一个缺乏正义、良知的人。
- 9.在项目中利用block替换代理方法,实现通知
- 关于有些安卓手机安装应用的时候提示应用未安装 的解决办法之一
- Nouveau源码分析(七): 各SUBDEV/ENGINE初始化 (1)
- 5.1提交数据到服务器
- 参数传递的四种形式----- URL,超链接,js,form表单
- GYM 100685 J【交互题】
- 线程同步方法
- OutputStreamWriter,InputStreamReader,PrintWriter,BufferedReader
- MVC 学习
- [数据挖掘] 数据归一化
- 我是如何黑掉惠普打印机的