有没有人知道一种更优雅的方式来访问函数内的父对象?
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。 我现在无法想到任何事情,你们有什么建议吗?
感谢
答案 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);
}
};