js闭包

来源:互联网 发布:供应链金融软件系统 编辑:程序博客网 时间:2024/06/02 03:17

1、什么是闭包(摘自知乎中什么是闭包)

书中:闭包是指在javascipt中,内部函数总是可以访问其所在的外部函数中申明的参数和变量,即使在外部函数被返回之后。

维基百科中:闭包Closure)是词法闭包Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。

2、示例


    var o = (function() {        var person = {            name: 'Vincent',            age: 24        };         return{             run:function(k){                 return person[k];             }         }    }());    Object.defineProperty(Object.prototype, 'self',{        get : function(){return this ;},        set : function(value){return this;},        configurable:true    }); var mynamesss = o.run('name');    console.info(o.run('name'));var myobject = o.run('self');    console.info(myobject.self);

0 0
原创粉丝点击