web前端:JS高阶编程技巧--惰性函数

    作者:1800000000nm更新于: 2020-04-08 22:41:10

    Web开发

      框架(framework)是一个框子--指其约束性,也是一个架子--指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

      框架这个广泛的定义使用的十分流行,尤其在软件概念。框架也能用于机械结构。

      在vue、react等框架大量应用之前,我们需要使用jQuery或者原生js来操作dom写代码,在用原生js进行事件绑定时,我们可以应用DOM2级绑定事件的方法,即:元素.addEventListener(),因为兼容性,还有:

      元素.attachEvent()。所以我们需要封装成一个方法:

      functionemit(element,type,func){

      if(element.addEventListener){

      element.addEventListener(type,func,false);

      }elseif(element.attachEvent){

      element.attachEvent('on'+type,func);

      }else{//如果不支持DOM2级事件

      element['on'+type]=func;

      }

      }

      这个时候,如果一个元素需要通过一个行为添加多个点击事件,如:

      emit(div,'click',fn1);

      emit(div,'click',fn2);

      在第一次给div进行fn1事件绑定时,已经知道浏览器可以执行哪种绑定方式,执行绑定fn2时,就没有必要再次进行判断,那么代码可以进行修改:

      functionemit(element,type,func){

      if(element.addEventListener){

      emit=function(element,type,func){

      element.addEventListener(type,func,false);

      };

      }elseif(element.attachEvent){

      emit=function(element,type,func){

      element.attachEvent('on'+type,func);

      };

      }else{

      emit=function(element,type,func){

      element['on'+type]=func;

      };

      }

      emit(element,type,func);

      }

      也就是说,我们在进行第一次判断后,对函数进行重新定义,这样在之后再进行绑定时不需要再进行判断,从性能角度讲,虽然创建了闭包,但优于后续进行多次同一个的判断。

      这就是函数的惰性思想,对于同一个判断,我们只需要进行一次就好。

      框架(Framework)是构成一类特定软件可复用设计的一组相互协作的类。框架规定了你的应用的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。框架预定义了这些设计参数,以便于应用设计者或实现者能集中精力于应用本身的特定细节。

课课家教育

未登录