从正在创建的对象访问密钥

时间:2014-08-12 05:13:13

标签: javascript object

我有一个像这样的对象:

var foo = {
   a: {
      b: ... || ... || ... || 30
   }
 , c: bar(... || ... || ... || 30)
};

是否可以访问foo.a.b密钥,而不是在... || ... || ... || 30来电中再次发送bar

我也可以这样做:

foo.c = bar(foo.a.b);

但如果可能的话,我会选择更短的方式。

我尝试bar(this.a.b)无效(Cannot read property 'b' of undefined.)。

1 个答案:

答案 0 :(得分:0)

是的,当然。

您的错误意味着this.aundefined,就像{}.fooundefined一样,而{}.foo.bar会抛出undefined.bar之类的错误抛出一个错误。您可以在控制台(浏览器或Node.js)中尝试所有这些。

this将绑定到成员函数中的对象(在伪类中),但通常绑定到全局对象。 (规则很复杂 - 请学习它们)。在没有看到完整代码的情况下我无法分辨,但看起来this看起来不会引用foo