【发布时间】:2012-06-26 22:01:10
【问题描述】:
javascript 中的函数通过保持一个(隐藏的)链接到它的封闭范围来形成一个闭包。
当我们拥有函数(作为变量值)时,是否可以通过编程方式访问它?
真正的目标是理论上的,但演示可能是列出闭包的属性。
var x = (function(){
var y = 5;
return function() {
alert(y);
};
})();
//access y here with x somehow
【问题讨论】:
-
代码示例可以更好地解释您的确切问题
-
@Blaster:试试看。它行不通。
y不是x的属性。 -
@Blaster 那是因为这就是“x”函数的作用。您的示例也会在控制台上记录 5。
-
@Blaster:那是
alert(y)向您展示5。console.log()显示TypeError: Cannot read property 'y' of undefined -
好的,谢谢大家现在明白了 :)
标签: javascript scope closures