我有一个像这样的对象:
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.
)。
答案 0 :(得分:0)
是的,当然。
您的错误意味着this.a
为undefined
,就像{}.foo
将undefined
一样,而{}.foo.bar
会抛出undefined.bar
之类的错误抛出一个错误。您可以在控制台(浏览器或Node.js)中尝试所有这些。
this
将绑定到成员函数中的对象(在伪类中),但通常绑定到全局对象。 (规则很复杂 - 请学习它们)。在没有看到完整代码的情况下我无法分辨,但看起来this
看起来不会引用foo
。