从变量访问元素属性

时间:2012-04-27 15:31:15

标签: javascript variables properties

我有功能:

this.addNode = function(element){

            var context = this.obj.element;
         return context;    
}

和this.obj是一个具有一些属性的对象。当我想从变量中调用它们时,我怎样才能访问这些属性?

1 个答案:

答案 0 :(得分:0)

我需要做一些假设,因为这个例子并不完全清楚。假设您在构造函数中有此代码,并且您想引用此对象的obj.<some-passed-name>,那么您不能使用.而是[]这样

function SomeObj() {

  this.obj = { a: 1, b: 2 };

  this.addNode = function (element) {
    var context = this.obj[element];
    return context;    
  }
}

你可以像这样使用它

var o = new SomeObj();
o.addNode('a'); // returns 1
o.addNode('b'); // returns 2

但通常建议隐藏实现(obj属性),如此

function SomeObj() {

  var obj = { a: 1, b: 2 };

  this.addNode = function (element) {
    var context = obj[element]; // not using this.obj
    return context;    
  }
}

如果将obj作为参数传递给构造函数,则更简单:

function SomeObj(obj) {
  this.addNode = function (element) {
    var context = obj[element]; // not using this.obj
    return context;    
  }
}

var o = new SomeObj({ a: 1, b: 2 });
o.addNode('a'); // returns 1
o.addNode('b'); // returns 2

我希望我猜对了。