函数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"
})        

这个例子仅仅是两个参数的情况,当参数较为复杂的时候,这种方法的好处就彻底的体现出来了

转载于:https://www.cnblogs.com/liqingchang/p/3725081.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值