以下代码有效,但我想知道是否有可能从c中获取b而不提及
var a = {
b: {
x: true
},
c: {
check: function(){
var test = a.b.x; // b.x I would like not to mention a. This does not work.
alert('value is ' + test);
}
}
}
a.c.check();
答案 0 :(得分:3)
嗯,你必须以某种方式指定a
所以js知道你要调用哪个函数。
你能做的就像是
var a = {
b: {
x: true
},
c: {
check: function(){
var test = this.b.x;
alert('value is ' + test);
}
}
}
a.c.check.call(a);
或者您可以将检查绑定到a
:
var a = {
b: {
x: true
}
}
a.c = {
check: function(){
var test = this.b.x;
alert('value is ' + test);
}.bind(a)
}
a.c.check();
或链接到b:
var a = {
b: {
x: true
}
};
a.c = {
b: a.b,
check: function(){
var test = this.b.x;
alert('value is ' + test);
}
}
a.c.check();