javascript中的函数通过保持与其隐藏范围的(隐藏)链接来形成关闭。
当我们拥有函数(作为变量值)时,是否可以通过编程方式访问它?
真正的目标是理论上的,但一个演示可能是列出闭合的属性。
var x = (function(){ var y = 5; return function() { alert(y); }; })(); //access y here with x somehow
这是关闭的目的之一(使信息保密)。由于该函数已经执行,因此它的作用域变量不再可从外部获得(并且从未使用过)-只有在其作用域中执行的函数(仍然)可以访问。
但是,您可以通过getter / setter授予访问权限。
编辑:您可以使用几种方法来检查闭包:在webdeveloper控制台中观察对象,或者(就像我经常做的那样)返回调试函数,该函数将所有私有变量转储到控制台。