我想我可能会遗漏一些对象引用的内容,在下面的例子中,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();
非常感谢
答案 0 :(得分: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();
答案 1 :(得分:2)
test.b
指的是声明对象时this.a
的所有内容。
var foo = this;
您不希望this
在这里引用foo
,对吗?它的工作方式完全相同:
var bar = [ this ];
和
var baz = { 'blag' : this };