程序员

闭包的概念,作用,面试题

2020-06-08  本文已影响0人  爱看小说的叶子

概念: 闭包是指有权访问另一个函数作用域中变量的函数。 一般是函数里面返回函数和函数入参。

作用:  正常函数执行完毕之后,里面声明的变量被垃圾回收处理掉,但是闭包依然让

作用域的变量存在。

参考网址:https://www.cnblogs.com/heyushuo/p/9975911.html

缺点:因为闭包里面的变量都没有释放,所以占用的内存很高。

创建闭包的方式:把函数当作返回值返回。

  function getList(){ 

            var name = 'value 值';

            return function(){

            console.log(name)

        }

    }

var name = 'window值'

var d = getList()

d()

 面试题: var a = {

                name: 'aa',

                getName: function(){

                        return this.name;

        }

}

1; a.getName()   // aa

2: var c = a.getName;  

    c();   //  ‘’

问题: 那怎么样c也能得到name的值?

思路: 在那个加个闭包,不让其回收就行。作用域再嵌套一层。

 var a = {

name: 'aa',

     getName: function(){

            var self = this;

               return ()=>{

                    return self.name;

        }

}

}

2: var c = a.getName();  

    c();   // aa

上一篇 下一篇

猜你喜欢

热点阅读