zoukankan      html  css  js  c++  java
  • 函数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"
    })        

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

  • 相关阅读:
    [51nod1384]全排列
    [51nod1256]乘法逆元
    [51nod1106]质数检测
    [51nod1058]求N!的长度
    2017 world final
    [Manacher+bit]Palindrome
    [hdu3068]最长回文(Manacher算法)
    [trie]字典树模板
    [凸包]Triangles
    LintCode-366.斐波纳契数
  • 原文地址:https://www.cnblogs.com/liqingchang/p/3725081.html
Copyright © 2011-2022 走看看