美文网首页
两道js闭包题目;

两道js闭包题目;

作者: forLovn | 来源:发表于2017-03-01 11:41 被阅读0次

两道面试题;

1:
 function test() {
             var value =2;
            return function (param) {
                alert(value * param);
                alert(this.value * param);
            }
        }
        value=3;
        var a = test();
        a(2);//4;6
解释下:一点闭包你里面的this指向window, 但当变量名相同且没有使用this关键字时,使用离它最近的那个变量;

2:
function test() {
             var value =2;
            return function (param) {
                value *=param;
                alert(value)
            }
        }
        value=3;
        var a = test();
        a(2);//4
        a(2);//8
解释如下:
垃圾回收是指:一个值,如果没有任何变量指向它,那么它就被回收。
你执行完一个函数,函数本身不会被回收。函数内部的变量是否回收要分情况:
如果是一般函数,没有闭包,那么函数内的局部变量就会被回收。
如果函数内有闭包,那么闭包会在函数执行完后仍然引用变量,也就是说变量不会被回收。

3:js闭包应用
<script>
        window.onload=function () {
            for(var i=1;i<=6;i++){
                document.getElementById("div"+i).onclick=(function (value){
                    return function(){
                        alert(value)
                    }
                })(i)
            }
        }
    </script>

相关文章

  • 两道js闭包题目;

    两道面试题;

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • JS闭包

    JS闭包 闭包练习

  • JS闭包问题(二)

    在之前的JS闭包问题(一)文章中大概介绍了一下JS闭包,同时讲了闭包与变量之间的问题,今天我们继续聊闭包,聊聊闭包...

  • 闭包题目

    一、 二、 三、 改造后,输出3 四、封装一个Car对象 五、 改造后,连续输出 0,1,2,3,4 六、 七、数...

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

  • JS闭包入门

    最近有看到朋友的面经里提到的JS闭包的问题,就想研究研究,以下是我对JS闭包的简单理解。 到底什么是JS闭包? 定...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

  • 前端面试必问总结

    前言 本文用于总结个人在工作期间总结的一些面试题 题目列表 js的函数声明 js的原型链 js的闭包 js的Pro...

网友评论

      本文标题:两道js闭包题目;

      本文链接:https://www.haomeiwen.com/subject/qesqgttx.html