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 );

  • 相关阅读:
    服务器又100%了,上一个挖矿病毒解决完,这几天又来了一个新的挖矿病毒。。。。
    一些面试题
    家庭应急储备物资分类
    所学习的docker
    Mysql主从复制原理及同步延迟问题
    关于git
    小程序的get和post需要注意的地方
    CSS3 3D转换
    transform CSS3 2D知识点汇总
    HTML5基础知识总结(一)
  • 原文地址:https://www.cnblogs.com/wangweizhang/p/9199640.html
Copyright © 2011-2022 走看看