zoukankan      html  css  js  c++  java
  • js闭包避免内存泄漏 减少内存使用 避免对象无法回收注意事项

    闭包
    
    如果闭包的作用域中保存着一个 HTML 元素,则该元素无法被销毁。(下面代码来自高程)
    闭包是 JavaScript 开发的一个关键方面:匿名函数可以访问父级作用域的变量。
    
    function assgin() {
        var ele = document.getElementById('someEle');
        ele.onclick = function(){
            alert(ele.id);
        }
    }
    以上代码创建了一个作为 ele 元素事件处理程序的闭包,而这个闭包有创建了一个循环的引用,由于匿名函数保存了一个 assgin() 的活动对象的引用 ,因此无法减少对 ele 的引用次数 , 只要匿名函数存在,ele的引用次数至少是 1。我们可以稍微改写一下:
    
    function assgin() {
        var ele = document.getElementById('someEle');
        var id = ele.id
        ele.onclick = function(){
            alert(id);
        }
        ele = null;
    }
    

    一些js使用的注意事项可以看看  https://segmentfault.com/a/1190000010477169 

  • 相关阅读:
    Jexus部署Asp.Net Core项目
    Docker 学习
    mysql 调优 (转)
    ZXHN H218N 超级管理员账号
    微擎遇到 请先更新或安装主模块后再安装插件 问题解决
    centos7 + php7
    PPTPD 服务搭建
    精心调制的Bash主题分享
    vue
    木马技术
  • 原文地址:https://www.cnblogs.com/ProDoctor/p/7284025.html
Copyright © 2011-2022 走看看