-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 に答える