在函数内部获取祖父背景

时间:2016-05-31 13:14:58

标签: javascript

有没有人知道一种更优雅的方式来访问函数内的父对象?

var obj = {
    subobj : {
        func1 : function() {
            // here 'this' will refer to window
            // i want to access obj instead
        }
    }
};

var obj = {
    func1 : function() {
        //  i know 'this' here will refer to bj
    }
}

我也试过

var obj = {
    subobj : {
        func1 : function() {
            // even 'this' will refer to window
        }.bind(this)
    }
}

但即使在这个绑定示例中,这个'会引用窗口,因为它在外面。

我可以

var _this = obj;

在func1里面,但我 DON' T 想要使用这个丑陋的技巧。

我基本上想要在func1中获取obj上下文或者将obj上下文添加到subobj。 我现在无法想到任何事情,你们有什么建议吗?

感谢

1 个答案:

答案 0 :(得分:2)

首先。您不需要弄乱上下文,因为您已经可以在函数obj中访问func1

var obj = {
    subobj : {
        func1 : function() {
            //use `obj` here
            console.log(obj);
        }
    }
};

或者,如果您出于某种原因想要像这样访问obj。请执行以下操作

var obj = {
    subobj : {
        func1 : function() {
            //this is now obj here. Go suffer maintainer!
        }.bind(obj);
    }
};