java惰性函数_[Java教程]惰性函数——JS高级

[Java教程]惰性函数——JS高级

0 2015-07-01 17:00:16

我们先来看一下js的异步提交。

XHR我们在原生的时候常常用到,因为常用到,我们更多把封装到了工具库中

先看下他最常用的实现1 // 旧方法 2 3 function createXHR() { 4 var xhr; 5 try{ 6 xhr = new 7 }catch(e) { 8 handleErr(e); 9 10 try {11 xhr = new ActiveXObject("Ms);12 }catch(e) {13 try{14 xhr = new ActiveXObject("Microsoft.);15 }catch(e) {16 xhr = null;17 }18 }19 }20 21 return xhr ;22 }23 24 function handleErr(error) {25 // 这一步在实战中很重要,因为catch会延长作用域链,所以是在全局作用域声明的e26 // 这里我们把它赋给局部变量,则查找更快27 var err = error;28 29 // do sth.30 }

没错吧?这是最常见的createXHR实现方法了。

如题,这里要说的 惰性函数 是什么东西呢?

我们先说它的作用: 优化被经常调用到的函数。

这也属于JS高级中的一部分

不多说,直接上代码1 // 惰性函数 2 // 第二次才生效 3 // 作用:优化对于被频繁使用的函数 4 function createXHR() { 5 var xhr; 6 if(typeof ) { 7 xhr = new 8 createXHR = function() { 9 return new 10 }11 }else {12 try {13 xhr = new ActiveXObject("Ms);14 createXHR = function() {15 return new ActiveXObject("Ms);16 }17 }catch(e) {18 try {19 xhr = new ActiveXObject("Microsoft.);20 createXHR = function() {21 return new ActiveXObject("Microsoft.);22 }23 }catch(e) {24 createXHR = function () {25 return null;26 }27 }28 }29 }30 return xhr 31 }

代码中,我们让函数在第一次运行之后,则判断除了浏览器的环境,就被重新赋值了。赋值后的函数是直接return 对应的方法。

所以,这个函数,需要第二次调用的时候才真正的被调用。

正是因为它第二次调用函数的时候,没有去走第一次调用那样复杂的判断的路,所以显得“懒惰”。因此我们叫它 惰性函数

本文网址:http://www.shaoqun.com/a/122604.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JS

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值