如何从JS的另一个房产获得房产?

时间:2014-07-25 08:34:35

标签: javascript

以下代码有效,但我想知道是否有可能从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();

1 个答案:

答案 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();