• 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 

  • 相关阅读:
    shell lab
    cache lab
    后缀树
    leetcode maximum-length-of-repeated-subarray/submissions
    leetcode assign-cookies
    lcs
    leetcode delete-operation-for-two-strings
    【C】C语言typedef
    【C】C语言结构体指针的语法
    【JAVA】Java 命令行参数解析
  • 原文地址:https://www.cnblogs.com/ProDoctor/p/7284025.html
Copyright © 2020-2023  润新知