我想我可能会遗漏一些东西来引用对象,在下面的情况下,是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();
非常感谢
我想我可能会遗漏一些东西来引用对象,在下面的情况下,是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();
非常感谢
你可以这样声明:
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/
test.b
指this.a
声明对象时的任何内容。
var foo = this;
你不会指望这里this
提到foo
,对吧?它在这里的工作原理完全相同:
var bar = [ this ];
和
var baz = { 'blag' : this };