簡體   English   中英

Javascript:從嵌套函數內部訪問父屬性

[英]Javascript: Accessing parent properties from inside nested function

如何從bar.foo()內部訪問somevar:'this is Foo'

function Foo(){
    this.somevar='this is Foo';
}
Foo.prototype={
    bar:{
        somevar:'this is bar'
        ,foo:function(){
            console.log(this);
        }
    }
}

var instance = new Foo();
instance.bar.foo();

這是jsfiddle的鏈接: http : //jsfiddle.net/jct8n/3/

我認為語言的作用域規則可能不會以任何直接的方式允許這樣做。 我能拿出最好的建議,得到你想要的(短重命名的somevar首先擺脫沖突的)是使用apply()來改變的價值this里面foo()如:

var instance = new Foo();
instance.bar.foo.apply(instance);

這是一個小提琴:

http://jsfiddle.net/jct8n/2/

console.log(Foo.prototype.somevar);

另外,您應該考慮僅重命名somevar變量之一,以輕松實現您要執行的操作,以及消除一些復雜性和混亂性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM