[英]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);
這是一個小提琴:
console.log(Foo.prototype.somevar);
另外,您應該考慮僅重命名somevar
變量之一,以輕松實現您要執行的操作,以及消除一些復雜性和混亂性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.