zoukankan      html  css  js  c++  java
  • javascript代码工具库

    1. 垃圾收集

    另一个块作用域非常有用的原因和闭包及回收内存垃圾的回收机制相关。这里简要说明一

    下,而内部的实现原理,也就是闭包的机制会在第 5 章详细解释。

    考虑以下代码:

        function process(data) {
            // 在这里做点有趣的事情
        }
        var someReallyBigData = { .. };
        process( someReallyBigData );
        var btn = document.getElementById( "my_button" );
        btn.addEventListener( "click", function click(evt) {
            console.log("button clicked");
        }, /*capturingPhase=*/false );

    click 函数的点击回调并不需要 someReallyBigData 变量。理论上这意味着当 process(..) 执

    后,在内存中占用大量空间的数据结构就可以被垃圾回收了。但是,由于 click 函数形成

    了一个覆盖整个作用域的闭包,JavaScript 引擎极有可能依然保存着这个结构(取决于具体

    实现)。

    块作用域可以打消这种顾虑,可以让引擎清楚地知道没有必要继续保存 someReallyBigData 了:

        function process(data) {
            // 在这里做点有趣的事情
        }
        // 在这个块中定义的内容可以销毁了!
        {
            let someReallyBigData = { .. };
            process( someReallyBigData );
        }
        var btn = document.getElementById( "my_button" );
        btn.addEventListener( "click", function click(evt){
            console.log("button clicked");
        }, /*capturingPhase=*/false );

    1. 垃圾收集 另一个块作用域非常有用的原因和闭包及回收内存垃圾的回收机制相关。这里简要说明一 下,而内部的实现原理,也就是闭包的机制会在第 5 章详细解释。 考虑以下代码: function process(data) { // 在这里做点有趣的事情 } var someReallyBigData = { .. }; process( someReallyBigData ); var btn = document.getElementById( "my_button" ); btn.addEventListener( "click", function click(evt) { console.log("button clicked"); }, /*capturingPhase=*/false ); 34 | 第 3 章 click 函数的点击回调并不需要 someReallyBigData 变量。理论上这意味着当 process(..) 执 行后,在内存中占用大量空间的数据结构就可以被垃圾回收了。但是,由于 click 函数形成 了一个覆盖整个作用域的闭包,JavaScript 引擎极有可能依然保存着这个结构(取决于具体 实现)。 块作用域可以打消这种顾虑,可以让引擎清楚地知道没有必要继续保存 someReallyBigData 了: function process(data) { // 在这里做点有趣的事情 } // 在这个块中定义的内容可以销毁了! { let someReallyBigData = { .. }; process( someReallyBigData ); } var btn = document.getElementById( "my_button" ); btn.addEventListener( "click", function click(evt){ console.log("button clicked"); }, /*capturingPhase=*/false );

  • 相关阅读:
    算法之【仿竖式算法】
    算法之【大整数乘法】
    EIGRP系统复习【转载】
    算法之【插入排序法】
    算法之【折半插入法】
    ★10 个实用技巧,让Finder带你飞~
    ★宣传广告变成社会标准
    ★路由递归查询方法及相关图…
    自制tunnel口建虚拟专网实验
    【★】路由环路大总结!
  • 原文地址:https://www.cnblogs.com/wangweizhang/p/9199640.html
Copyright © 2011-2022 走看看