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

标签 javascript

如何从 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 :

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

关于Javascript:从嵌套函数内部访问父属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8693279/

相关文章:

Javascript 调度事件

javascript - 按下一次按钮后如何灰显和禁用按钮?

javascript - window.open 在 Firefox 55.0.1 上无法正常工作

javascript - AngularJS - 异步调用 Facebook API

javascript - 如何从头开始设置 Twitter typeahead?

javascript - 如何从 jQuery 中通过 $.when 解析的多个 Promise 对象中检索数据?

javascript - 为 DOMMouseScroll 事件添加延迟

javascript - 谷歌图表在多个时不起作用

javascript - typescript 错误 'argument of type is not assignable to parameter of type'

javascript - html:悬停表格列