-4

我有功能:

this.addNode = function(element){

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

this.obj 是一个具有一些属性的对象。当我想从上面的变量中调用这些属性时,如何访问这些属性?

4

1 回答 1

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

我希望我猜对了这个问题。

于 2012-05-04T10:24:25.450 回答