美文网首页程序员
闭包的概念,作用,面试题

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

作者: 爱看小说的叶子 | 来源:发表于2020-06-08 09:18 被阅读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

    相关文章

      网友评论

        本文标题:闭包的概念,作用,面试题

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