HTML5技术

前端代码合集 - web前端开发博客(5)

字号+ 作者:H5之家 来源:H5之家 2017-10-19 12:01 我要评论( )

if ( dsid in cache ) { //如果结果在缓存中 return cache[dsid]; //直接返回缓存中的对象 } var fsb = new uikit.webctrl.SearchBox(dsid);//新建 cache[dsid] = fsb;//更新缓存 if (count.length 100) { delete c

           if (dsid in cache) { //如果结果在缓存中

               return cache[dsid]; //直接返回缓存中的对象

           }

           var fsb = new uikit.webctrl.SearchBox(dsid);//新建

           cache[dsid] = fsb;//更新缓存

           if (count.length > 100) {

               delete cache[shift()];

           }

           return fsb;

       },

 

       clearSearchBox: function (dsid) {

           if (dsid in cache) {

               cache[dsid].clearSelection();

           }

       }

   }

})();

 

CachedSearchBox.attachSearchBox('input');

我们开发中会碰到很多情况,设想我们有一个处理过程很耗时的函数对象,每次调用都会花费很长时间,

那么我们就需要将计算出来的值存储起来,当调用这个函数的时候,首先在缓存中查找,如果找不到,则进行计算,然后更新缓存并返回值,如果找到了,直接返回查找到的值即可。闭包正是可以做到这一点,因为它不会释放外部的引用,从而函数内部的值可以得以保留。

闭包实现封装

var person = function () {

   var name = "Default";

 

   return {

       getName: function () {

           return name;

       },

       setName: function (newName) {

           name = newName;

       }

   }

}();

 

console.log(person.name);//undefined

console.log(person.getName());//Default

person.setName("GoodMan");

console.log(person.getName());//GoodMan

闭包实现类和继承

function Person() {

   var name = "default";

 

   return {

       getName: function () {

           return name;

       },

       setName: function (newName) {

           name = newName;

       }

   }

}

 

var p = new Person();

p.setName('Tom');

console.log(p.getName());

var Jack = function () {

};

Jack.prototype = new Person();//继承自Person

Jack.prototype.Say = function () { //添加私有方法

   console.log("Hello,my name is Jack");

};

var j = new Jack();

j.setName("Jack");//Tom

j.Say();//Hello,my name is Jack

console.log(j.getName());//Jack

如何判断某变量是否为数组数据类型

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 客户懂点代码是最致命的毒药 - 郎中令

    客户懂点代码是最致命的毒药 - 郎中令

    2017-10-19 10:03

  • HTTP错误代码大全 - 张大哒

    HTTP错误代码大全 - 张大哒

    2017-10-18 10:01

  • 《移动Web前端高效开发实战》笔记4--打造单页应用SPA - 更爱Web-APP

    《移动Web前端高效开发实战》笔记4--打造单页应用SPA - 更爱Web-APP

    2017-10-12 09:00

  • windows server 2008使用nginx转发API异常解决办法 - 前端阿小

    windows server 2008使用nginx转发API异常解决办法 - 前端阿小

    2017-10-09 18:02

网友点评