如何从对象中引用字段

How to reference a field from within an object

我正在尝试从另一个字段中的函数内寻址 javascript 中对象的字段,如下所示:

var binds = {};
var name = 'hi';
binds[name] = {
  foo: [],
  bar: {
    add: function (e) { foo.push (e); }
  }
}

我尝试了 this.foo.push (e) 并将函数与 .bind (binds[name]).bind (this) 绑定,但这些都不起作用,我如何从中的函数引用 foo 元素bar?

编辑:

我正在尝试引用一个不在同一个对象上但更高的字段。所以这与链接的问题不同。

您可以尝试使用模块模式来存储对更高层属性的引用,如下所示:

var binds = {};
var name = 'hi';

binds[name] = (function() {
    var arr = [];
    return {
        foo: arr,
        bar: {
            add: function(e) {
                arr.push(e);   
            }
        }
    }
})();

binds[name].bar.add('test');
console.log(binds[name].foo); //logs ["test"]