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

网站备案可以更改吗重庆企业网站seo

网站备案可以更改吗,重庆企业网站seo,友链之家,做外单的网站前面的话 根据闭包的定义#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.yutouwan.com/news/146191/

相关文章:

  • 网站的关键词排名怎么做常用网站设计缩略图
  • 找客户在公司做网站常德 网站建设
  • 肇东网站制作成都优化教育百度推广
  • 网站建设五行高效完成网站建设的步骤
  • 建设部特种作业证网站查询安陆网站制作公司
  • 手机网站开发实例wordpress 不在根目录
  • 深圳专业英文网站建设网站设计东莞
  • 晋城企业网站建设公司常州网站推广软件
  • 不用服务器怎么做网站重庆物流公司网站建设
  • 网站建设和优化排名ps做网站页面美工
  • 网站显示建设中开发项目管理系统
  • 手机自助网站建设连云港网站建设价格
  • 课程网站建设总体情况wordpress透明
  • html情人节给女朋友做网站无线wifi图片大全
  • 北京中小企业网站建设公司wordpress无法用ftp
  • 兰州市政建设集团办公网站网站建设图
  • 安居客网站是用什么程序做的推广网站赚钱
  • 商城网站制作手机网站整站模板下载
  • 做电商哪几个设计网站比较好高明公司搜索seo
  • 高端网站建设公司价格建设网站的网站安全
  • 扫码进入网站如何做在QQ上做cpa网站说是恶意的
  • 潍坊市网站新产品开发8个步骤
  • 哪个网站做漂流瓶任务网站制作哪家大
  • 网站开发就业前景怎么样怎么在网站中搜索关键字
  • 购物网站开发的难点牡丹江地区做网站的公司
  • 期货网站开发php源代码做网站
  • 电子商务网站建设编码烟台做网站建设电话
  • 没有基础学做网站查网课答案的网站怎么做
  • 一流的内蒙古网站建设做餐厅网站的需求分析报告
  • 机器人软件开发和网站开发网址缩短在线生成器