函数Curry化
Curry化技术是一种通过把多个参数填充到函数体中,实现将函数转换为一个新的经过简化的(使之接受的参数更少)函数的技术
写个例子,该函数的作用是改变一个div的样式
function changeStyle (obj,json){ for(var attr in json){ obj.style[attr] = json[attr] } }
假如我接下来可能需要大量的针对某一个元素进行样式改变,这时候就可以使用函数Curry化,代码如下:
function changeStyle(obj,json){
if(typeof json === "undefined"){
return function (json){
cs(obj,json);
}
}else{
cs(obj,json);
}
function cs(obj,json){
for(var attr in json){
obj.style[attr] = json[attr];
}
}
}
下面是该函数的使用方法
var oDiv = document.getElementById("div"); changeStyle(oDiv)({ "width":"100px", "height":"200px", "background-color":"#c06" })
这个例子仅仅是两个参数的情况,当参数较为复杂的时候,这种方法的好处就彻底的体现出来了