闭包中的本地函数声明闭包中存在的具有相同名称的变量。那么,我们如何才能从本地函数访问闭包变量呢?区分闭包和局部变量
function closure()
{
var xVar;
function func1()
{
var xVar;
// how to distinguish local and closure scopes.
return xVar;
}
return function() { return func1(); };
}
创建私有对象并将私有变量作为此对象的属性可能会有所帮助。但我想知道是否有更好的和整洁的解决方案。范围链可以提供帮助吗?
我已编辑完成关闭。无论如何,封闭在这里并不太受关注,但它可以被认为是内部功能,但是可能会有某种解决方案。
感谢
我认为他知道这一点。问题是,从“func1”中的代码中,你将如何显式引用在“closure”中定义的“xVar”(而不是“func1”中定义的“xVar”)? – Pointy 2010-02-27 15:37:24
我在第一段中回答了这个问题。 – 2010-02-27 15:58:57