2

オブジェクト参照に来る何かが欠けている可能性があると思います。以下の場合、thisテストオブジェクトを参照していますか?bそうでない場合、最終的にどのように宣言できtest.a = test.bますか?

test = {
 a: 1,
 b: this.a,
 check : function(){
  console.log(test.a); // returns 1
  console.log(test.b); // returns undefined
 }
};
test.check();

どうもありがとう

4

2 に答える 2

3

次のように宣言できます。

function test(){
   this.a = 1;
   this.b = this.a;

    this.check = function(){
       console.log(this.a);  // output 1
       console.log(this.b); // output 1
    }        
}

var t = new test();
t.check();

実例: http: //jsfiddle.net/Rqs86/

于 2012-11-21T15:14:10.883 に答える
2

test.bthis.aオブジェクトを宣言するときにあったものを指します。

var foo = this;

thisここで言及することを期待していませんよfooね?ここでもまったく同じように機能します。

var bar = [ this ];

var baz = { 'blag' : this };
于 2012-11-21T15:09:22.720 に答える