如何从 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/
最佳答案
我认为也许语言的范围规则不允许以任何直接的方式这样做。我能想到的最好的建议是使用 apply()
来获得你想要的东西(除了重命名 somevar
以首先消除冲突)更改 foo()
中 this
的值,例如:
var instance = new Foo();
instance.bar.foo.apply(instance);
这是一个 fiddle :
关于Javascript:从嵌套函数内部访问父属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8693279/