閉包中的本地函數聲明閉包中存在的具有相同名稱的變量。那麼,我們如何才能從本地函數訪問閉包變量呢?區分閉包和局部變量
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