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

枝江市住房和城乡建设局网站邵阳网站制作建设

枝江市住房和城乡建设局网站,邵阳网站制作建设,seo优化招商,wordpress会员地址说起闭包这个概念#xff0c;其实是离散数学中的一种定义#xff0c;而很程序员们耳熟能详但不一定能说清楚它的含义和用途。本文先简单地介绍下离散数学中的闭包#xff0c;然后再探讨一下Javascript语言中的闭包是如何创建和应用的。 Closure 闭包 1、闭包的定义 -离散数学…说起闭包这个概念其实是离散数学中的一种定义而很程序员们耳熟能详但不一定能说清楚它的含义和用途。本文先简单地介绍下离散数学中的闭包然后再探讨一下Javascript语言中的闭包是如何创建和应用的。 Closure 闭包 1、闭包的定义 -离散数学 一个关系不具有自反, 对称, 传递这3种基本性质之一,但均可以通过对该关系的扩充(在关系中增添序偶),使扩充后的关系具有这种性质,这种包含该关系的最小扩充称为该关系关于这种性质的闭包.下面给出闭包的定义设R是X上的关系,R的自反(或对称,传递)闭包R1是这样的包含R(或R包含于R1)的自反(或对称,传递)关系,对任意的自反(或对称,传递) 关系S,如果R包含于S,则必有R1包含于S.满足的条件   设R是非空集合A上的关系 R的自反对称或传递闭包是A上的关系R 满足   (1) R是自反的(或对称的或传递的)   (2)  R⊆R       (3)对A上任何包含[R的自反(或对称的或传递的)]关系R 有R⊆R             r(R) - R的自反闭包 reflexivity    s(R) - R的对称闭包 symmetry    t(R) - R的传递闭包。 transmit R{a,b,b,a,b,c,c,d}r(R){a,a,b,b,c,c,d,d,a,b,b,a,b,c,c,d}s(R){a,b,b,a,b,c,c,b,c,d,d,c}t(R){a,b,a,b,a,c,a,d,b,c,b,d,b,a,b,b,c,d} -Javascript 在Javascript高级程序设计中提到Javascript闭包就是在函数中定义函数实现的功能就是在函数外部也能访问函数内部的局部变量。 1 var closure function(){ 2 var a 100; 3 var alertA function(){ 4 return(a); 5 } 6 return alertA; 7 } 8 console.log(closure()());  //100 这个玩意就是闭包他可以在函数外部访问函数内部的变量是不是很神奇 其实没啥神奇的代码示例中closure()执行了closure这个方法返回了一个匿名函数这是一个没有执行的匿名函数然后通过()函数运算符执行了closure中的alertA这个方法。alertA返回了私有变量a的值我们称在子函数中使用父函数的局部变量的结构为闭包结构。   2、闭包的应用 -模块化代码 我们再看一个例子 1 function createFunctions(){2 var result new Array(); 3 4 for(var i 0; i 10; i){ 5 result[i] function(num){ 6 return function(){ 7 return num; 8 } 9 }(i); 10 } 11 return result; 12 } 13 14 var funcs createFunctions(); 15 for(var i 0; i funcs.length; i){ 16 console.log(funcs[i]()); 17 }   代码示例中createFunctions返回了一个数组该数组指向多个定义的匿名函数生成的对象这个闭包可以通过数组不同的索引来调用相当于一个多元的闭包在模块化开发时候可以使用这个结构。 3、闭包的缺点 -内存泄露 1 function assignHandler(){2 var element document.getElementById(someElement);3 var id element.id4 element.onclick function(){5 alert(id); // modified - someElement save as local variable6 alert(element.id); //error element is null7 }8 element null; // modified - release mem invoked by element9 return function(){ 10 console.log(element); // null 11 } 12 } 13 var m assignHandler(); 14 m(); 代码实例中是一个闭包结构修改部分用//modified -标注了未修改前在IE浏览器中由于IE的内存回收机制element.onclick 引用的匿名函数中调用了element.id致使element对象得不到释放一直存贮在内存中如果这个函数被调用多次那么内存中的element引用会越来越多导致内存泄露。此例是指在引用Html element时候放在闭包内对象得不到释放而导致的。因此在使用闭包的同时要注意内存的释放。 4、总结  本文通过几个简单的例子介绍了Javascript的闭包及其应用实际开发中由于闭包长期内存需要代码释放和比较难理解的语法所以在没有必要的情况下不建议使用闭包。 5、参考资料 Javascript 高级程序设计第二版 http://cise.sdust.edu.cn/lssx/7StressResolve/cha3/36.htm  转载于:https://www.cnblogs.com/keaixiaoye/p/4184367.html
http://www.sadfv.cn/news/365442/

相关文章:

  • 大连手机网站开发江苏江都建设集团有限公司网站
  • 查询网站备案服务商网站备案需要哪些材料
  • 虚拟主机网站建设步骤网站建设怎么引流
  • 上海 网站制作网站主页建立 优帮云
  • 怎么让自己的网站通过域名访问不了云伙伴小程序开发公司
  • 多页网站模板上海企业在线
  • 淮南网络营销网站优化页面
  • 网站内容规划流程大连服务公司 网站
  • wordpress修改版本seo点击排名软件营销工具
  • 网站基础功能网页制作公司的小客户有哪些
  • 网站制作哪些公司好七牛云wordpress加速
  • 福建省建设招投标网站wordpress gallery
  • 杭州设计门户网站网站制作公司 深圳
  • 太原新建火车站wordpress v2ex 设计
  • 网站开发与没计是做什么深圳全网推广平台
  • 生成图标网站网页升级访问未成年
  • 企业网站建设采购网站导航栏字体
  • 桂林网站优化价格yy直播下载
  • 自己做网站价格顺企网官网
  • 网站建设个人年终总结佛山网站建设网站制作公司
  • 加盟什么网站建设怎么制作游戏小程序
  • 网页制作企业网站作业沧州专业网站建设公司
  • 龙口建网站公司哪家好文章类型网站
  • 做货代还有什么网站可以加人黄山风景区门票多少钱
  • 苏州网站排名百度seo优化规则
  • 在线学习石家庄搜索引擎优化
  • 上海网站建设排名公司哪家好网站开发济南招聘
  • 网站备案负责人幕布照wordpress固定链接改后无法访问
  • 帮企业做网站前景怎么样广告设计就业方向和前景
  • 网站搜索算法流线型的网站建设