Javascript:从嵌套函数内部访问父属性

时间:2012-01-01 13:17:53

标签: javascript

如何从somevar:'this is Foo'内部访问bar.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/

3 个答案:

答案 0 :(得分:3)

我想也许语言的范围规则不会以任何直接的方式允许这种情况。我能想出的最好的建议是获得你想要的东西(除了首先重命名somevar以摆脱冲突)是使用apply()来改变{{1}的值} this内部,如:

foo()

这是一个小提琴:

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

答案 1 :(得分:2)

答案 2 :(得分:1)

console.log(Foo.prototype.somevar);

或者,您应该考虑重命名其中一个somevar变量,以便轻松实现您的目标,并消除一些复杂性和混淆。