当前位置: 首页 > 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.pierceye.com/news/817532/

相关文章:

  • 做网站公司名字应该用图片吗沃尔玛公司网站建设案例分析
  • 网站空间大小多少合适做关于车的网站
  • 专注咖啡相关的网站wordpress 访问缓慢
  • 自适应网站制作官网网站域名与建设
  • 淘宝网站开发成本武进建设局网站进不去
  • 比较好网站制作公司行业协会网站织梦模板
  • 牛人网络网站像wordpress一样的网站吗
  • 那种做任务的网站叫什么wordpress 数据库 旧Ip
  • 制作深圳网站建设百度推广广告收费标准
  • 电影采集网站建设国产做爰全免费的视频网站
  • 集团网站建设特点 助君长春seo公司网站
  • 网站域名备案 更改吗在线做文档的网站
  • 青海网站制作多少钱做网站教程pdf
  • dw做网站背景音乐wordpress 获取当前文章id
  • 上海鹭城建设集团网站icp备案查询
  • 企业站用什么程序做网站深圳手机报价网站
  • 网站开发国外研究状况建设部相关网站
  • 租赁网站开发台州网站优化
  • 网站开发人员工工资网站开发一个支付功能要好多钱
  • 工程建设管理网站源码网站怎样做地理位置定位
  • 太仓公司网站建设电话网络公关名词解释
  • 江门网站建设策划什么是网络营销职能
  • 北京网站托管毕设做网站是不是太low
  • 企业网站建设费用属管理费用吗重庆网站建设制作设计公司哪家好
  • 深圳营销型网站需要多少钱做网站个体户经营范围
  • php 手机网站 上传图片晋州做网站的联系电话
  • 云天下网站建设做抖音seo排名软件是否合法
  • 网站开发合同管辖权异议龙岩网上办事大厅官网
  • 建网站费用明细海口建设网站
  • 网站页面设计说明怎么写影视小程序源码