当前位置: 首页 > news >正文

wordpress ftp密码整站网站优化费用

wordpress ftp密码,整站网站优化费用,wordpress cloudflare,深圳外贸公司前十名前面的话 根据闭包的定义#xff0c;我们知道#xff0c;无论通过何种手段#xff0c;只要将内部函数传递到所在的词法作用域以外#xff0c;它都会持有对原始作用域的引用#xff0c;无论在何处执行这个函数都会使用闭包。接下来#xff0c;本文将详细介绍闭包的10种形式…前面的话 根据闭包的定义我们知道无论通过何种手段只要将内部函数传递到所在的词法作用域以外它都会持有对原始作用域的引用无论在何处执行这个函数都会使用闭包。接下来本文将详细介绍闭包的10种形式 返回值 最常用的一种形式是函数作为返回值被返回 var F function(){ var b local; var N function(){ return b; } return N; } console.log(F()()); 函数赋值 一种变形的形式是将内部函数赋值给一个外部变量 var inner; var F function(){ var b local; var N function(){ return b; }; inner N; }; F(); console.log(inner()); 函数参数 闭包可以通过函数参数传递函数的形式来实现 var Inner function(fn){ console.log(fn()); } var F function(){ var b local; var N function(){ return b; } Inner(N); } F(); IIFE 由前面的示例代码可知函数F()都是在声明后立即被调用因此可以使用IIFE来替代。但是要注意的是这里的Inner()只能使用函数声明语句的形式而不能使用函数表达式。详细原因移步至此 function Inner(fn){ console.log(fn()); } (function(){ var b local; var N function(){ return b; } Inner(N); })(); 循环赋值 在闭包问题上最常见的一个错误就是循环赋值的错误。关于其错误原因的详细解释移步至此 function foo(){ var arr []; for(var i 0; i 2; i ){ arr[i] function(){ return i; } } return arr; } var bar foo(); console.log(bar[0]());//2 正确的写法如下 function foo(){ var arr []; for(var i 0; i 2; i ){ arr[i] (function fn(j){ return function test(){ return j; } })(i); } return arr; } var bar foo(); console.log(bar[0]());//0 g(s)etter 我们通过提供getter()和setter()函数来将要操作的变量保存在函数内部防止其暴露在外部 var getValue,setValue; (function(){ var secret 0; getValue function(){ return secret; } setValue function(v){ if(typeof v number){ secret v; } } })(); console.log(getValue());//0 setValue(1); console.log(getValue());//1 迭代器 我们经常使用闭包来实现一个累加器 var add (function(){ var counter 0; return function(){ return counter; } })(); console.log(add())//1 console.log(add())//2 类似地使用闭包可以很方便的实现一个迭代器 function setup(x){ var i 0; return function(){ return x[i ]; } } var next setup([a,b,c]); console.log(next());//a console.log(next());//b console.log(next());//c 区分首次 var firstLoad (function(){ var _list []; return function(id){ if(_list.indexOf(id) 0){ return false; }else{ _list.push(id); return true; } } })(); firstLoad(10);//true firstLoad(10);//false firstLoad(20);//true firstLoad(20);//false 缓存机制 通过闭包加入缓存机制使得相同的参数不用重复计算来提高函数的性能 未加入缓存机制前的代码如下 var mult function(){ var a 1; for(var i 0,len arguments.length; ilen; i ){ a a * arguments[i]; } return a; } 加入缓存机制后代码如下 var mult function(){ var cache {}; var calculate function(){ var a 1; for(var i 0,len arguments.length; ilen; i ){ a a * arguments[i]; } return a; }; return function(){ var args Array.prototype.join.call(arguments,,); if(args in cache){ return cache[args]; } return cache[args] calculate.apply(null,arguments); } }() img对象 img对象经常用于数据上报 var report function(src){ var img new Image(); img.src src; } report(http://xx.com/getUserInfo); 但是在一些低版本浏览器中使用report函数进行数据上报会丢失30%左右的数据也就是说report函数并不是每一次都成功地发起了HTTP请求 原因是img是report函数中的局部变量当report函数的调用结束后img局部变量随即被销毁而此时或许还没来得及发出HTTP请求所以此次请求就会丢失掉 现在把img变量用闭包封闭起来就能解决请求丢失的问题 var report (function(){ var imgs []; return function(src){ var img new Image(); imgs.push(img); img.src src; } })() report(http://xx.com/getUserInfo); 更多专业前端知识请上 【猿2048】www.mk2048.com
http://www.zqtcl.cn/news/817532/

相关文章:

  • 网站后台批量上传图片ue5培训机构哪家强
  • 合肥制作网站在哪里建网站
  • 网站开发话术合同管理软件系统
  • 洛阳建设网站公司vue 微信公众号开发
  • 网页的网站建设什么网站可以做免费广告
  • 秦都区建设局网站网络推广如何收费
  • 户外保险网站网站开发市场情况
  • 嘉兴企业网站排名网站快速排名服务
  • 8步快速搭建个人网站视频网站备案号被收回
  • 沈阳网站建设 景乔科技wap入口
  • 做网站服务器要用多大怎么在58建设企业的网站
  • 购物网站用户管理景观设计公司资质
  • 县检察院门户网站建设情况门户网站衰落的原因
  • 菏泽网站建设哪好大型企业网络搭建
  • t恤定制网站厦门制作网站企业
  • 上海建站优化建设网站个人简介范文
  • 青岛网站建设公司排名做收集信息的网站
  • 有空间与域名后怎么做网站电影网站建设费用
  • 网站建设销售找客源app制作培训
  • ps制作网站产品图片ps平面设计主要做什么
  • 怎样更新网站泉州网站开发公司
  • 蕲春县住房和城乡建设局网站广东建设局网站首页
  • 网站优化工作室共享经济型网站开发
  • 自己做网站好还是购买网站好网站建设平台报价
  • 设计师配色网站太原建站模板源码
  • 学计算机的做网站的叫什么工作wordpress商用收费不
  • 青岛网站建设谁家好一些网页微信怎么登陆
  • 企业网站seo优做网站的旅行社
  • 十大免费自助建站上传网站到空间
  • 深圳企业做网站简约个人网站