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

asp.net 3.5网站开发全程解析 网络建设与运维赛项

asp.net 3.5网站开发全程解析 ,网络建设与运维赛项,网站页面下沉的特效代码,提供网站制作公司报价闭包的主要作用:实现数据私有,函数内定义的私有变量,外面可以使用访问,但不可以修改。 以统计调用次数的函数为例: 普通形式: let a 0;function fn() {a;console.log(a: ${a});} 闭包形式: …

闭包的主要作用:实现数据私有,函数内定义的私有变量,外面可以使用访问,但不可以修改。

以统计调用次数的函数为例:

普通形式:
let a = 0;function fn() {a++;console.log(`a: ${a}`);}

闭包形式:
    function count() {let a = 0;function fn() {a++;console.log(`a: ${a}`);}return fn;}const fun = count();

    一,为什么调用时要使用fun() 而不是直接count():

    • count() 只是返回了 fn 函数的引用,而没有执行 fn 函数。
    • fun() 是对 fn 函数的调用,它会执行 fn 函数的逻辑,即对局部变量 a 进行递增操作并打印其值。

    因此,为了执行 fn 函数的逻辑,你需要将 count() 的返回值赋值给一个变量,然后调用这个变量来执行 fn 函数。

    二,原理:

    闭包 fn 保留了对 count 函数内部局部变量 a 的引用,即使 count 函数执行完毕,a 的值仍然被保留。而在全局作用域中定义的 a 是一个新的变量,与闭包内部的 a 没有关联。因此,每次调用 fun() 都会操作闭包内部的 a,而不会受到全局变量 a 的影响。

    闭包产生的内存泄漏:

    示例代码:

        function fn() {let count = 1function fun() {count++console.log(`函数第${count}次执行`)}return fun}const res = fn()res() // 2res() // 3

    谁会产生内存泄漏:count变量

    借助于垃圾回收机制的 标记清除法 可以看出:

    ① result 是一个全局变量,代码执行完毕不会立即销毁

    ② result 使用 fn 函数

    ③ fn 用到 fun 函数

    ④ fun 函数里面用到 count

    ⑤ count 被引用就不会被回收,所以一直存在

    注意:不是所有内存泄漏都要手动回收,比如react里面很多闭包不能回收

    http://www.dtcms.com/wzjs/803358.html

    相关文章:

  • 做淘宝客网站好搭建吗?手机版电脑qq登录入口
  • 模板网站试用甘肃省住房和城乡建设厅网站首页
  • 如何构建自己的网站wordpress 移动导航呼出
  • 湖北省建设教育协会网站首页陕西企业网站建设价格
  • 网站改版需要注意哪些seo问题网站优化要怎么做
  • 做网站下载好素材之后怎么建造主页高端网站建设上海
  • 免费推广网站翻译英文手把手教你学网站建设
  • 佛山网站seo三门峡网站seo
  • 瑞安自适应网站建设怎么开一个做网站的工作室
  • asp手机网站开发教程网站建设时间推进表模板
  • 课程网站建设的基本原理wordpress 获取友链
  • 电商网站建设教案邢台网站设计哪家好
  • 网站开发颜色网站开发的毕业周记
  • 蒙牛网站建设方案网站分为哪几种
  • 网站建设维护百家号什么网站专做店铺
  • 网站建设与维护案列软件行业 网站建设 模块
  • 自己做网站的软件wordpress手机视频
  • seo关键词排名怎么提升seo优化能提高网站的流量吗
  • 怎样经营好一个网站建设维护网站未签订合同
  • 新网站如何做百度收录贵阳门户网站
  • 自己可以做微网站吗wordpress轻拟物主题
  • 三门峡做网站推广建设部工程业绩网站
  • 国产做爰全免费的视频网站网站备案流程图
  • 做交易平台网站推广产品的方法和步骤
  • 在哪里建网站比较好网站基础代码html
  • 揭阳专业的网站建设价格华秋电子商城
  • 专业做网站公司哪家技术好淘宝客做网站自动更新
  • 网站移动转换办公管理软件定制
  • 建站策划设计公司什么用wordpress
  • 广告模板网站设计网站首页