如何从对象中引用字段

时间:2015-02-09 22:52:13

标签: javascript this

我正试图在另一个字段中的函数内解决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元素1}}?

编辑:

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

1 个答案:

答案 0 :(得分:0)

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

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"]