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

网站开发常见问题总结大型电子商务系统网站建设

网站开发常见问题总结,大型电子商务系统网站建设,广西网络,网站的建设与维护闭包1、闭包是什么?2、闭包可以解决什么问题?3、闭包的缺点1、闭包是什么? 闭包是一个函数加上到创建这个函数的作用域的链接,就是一个作用域可以访问到另一个作用域的变量,闭包‘关闭’了函数的自由变量 function f…

闭包

  • 1、闭包是什么?
  • 2、闭包可以解决什么问题?
  • 3、闭包的缺点

1、闭包是什么?

闭包是一个函数加上到创建这个函数的作用域的链接,就是一个作用域可以访问到另一个作用域的变量,闭包‘关闭’了函数的自由变量

function fun(){var a = 10;console.log( a )
}
fun()

函数都有垃圾回收机制,上面的这个函数,在运行完之后变量a就被回收了,但是下面的函数:


function fun(){var a = 10;return function () { console.log( a )}
}
fun()()

执行完之后变量a并没有被回收,原因是如果被回收了,打印a是会报错的。

那这是为什么呢?
闭包关闭了函数的自由变量,也就是变量不会被回收。

2、闭包可以解决什么问题?

能够完成同步任务与事件循环任务之间传递参数

看下面的例子:

var lis = document.getElementsByTagName('li')
for(var i = 0;i < lis.length;i ++){lis[i].onclick = function(){alert(i)}
}

1、先执行同步任务,i=4
2、执行事件循环,所以alert的i始终是4


var lis = document.getElementsByTagName('li')
for(var i = 0;i < lis.length;i ++){(function (i) { lis[i].onclick = function(){alert(i)}})(i)
}

1、使用闭包传值
2、成功实现每次打印出正确的i

3、闭包的缺点

1、变量会驻留在内存中,造成内存损耗问题。
解决方式:把闭包的函数设置为null,如何设置呢,看下面:

var lis = document.getElementsByTagName('li')
for(var i = 0;i < lis.length;i ++){(function (i) { lis[i].onclick = function(){alert(i)}lis[i] = null})(i)}

2、内存泄漏(ie) ==>可说可不说,如果说一定要提到ie浏览器,因为火狐、chrome浏览器都不会造成这个问题

http://www.yayakq.cn/news/251017/

相关文章:

  • ai网站百度浏览器
  • 天津网站设计策划小城镇建设 网站官方
  • 网站建设历史户县网站建设
  • 网站运营策略如何做网站已在别处备案怎么转入阿里云
  • 做网站域名选择重庆手机网站制作价格
  • 网页设计公司网站网站不备案可以用吗
  • 影楼网站模板网站被k 如何恢复
  • ui设计做app网站要学什么汕头网站建设开发
  • 养生网站建设论文个人网站制作代码
  • 做服装设计看哪些网站请问有重庆有做网站吗
  • 还没有做网站可以先备案域名吗网站开发信息文档
  • 网站 营销策略东莞网络优化排名
  • 秋实网站建设国内wordpress大神
  • 电脑做视频的网站吗网页制作工具可以发布网站吗
  • 怎么给自己的公司建立网站网站建设考虑
  • 增加网站收录国外建站vps
  • 网站弹出文字做电影网站赚钱么
  • 如何做网站流程图静安西安网站建设
  • 八年级信息做网站所用软件做网站需要注意的风险
  • 免费可商用网站免费个人网址
  • 做网站没资源wordpress木马乐主题
  • 深圳市专注网站建设wordpress视频教程 百度网盘
  • php 网站开发框架app打包网站开发源码
  • 沈阳建网站平台html个人网页中文模板
  • 网站设计方案书ppt深圳做手机的企业网站
  • 广州网站建设与实验北京网站制作公司兴田德润实力强
  • 行业网站建站搞笑网站建设目的和意义
  • 陕西省建设资格注册中心网站电脑安装什么版本wordpress
  • 阳江营销网站开发江苏工程建设交易信息网站
  • 电子网站建设方案商河做网站公司