以下是可能的吗?
var obj = {
data:'some data',
init:function(){
console.log(this.data);
console.log(obj.data);
}
}
obj.init();
此处,console.log(this.data)
和console.log(obj.data)
都返回相同的值。
是否可以将this
存储在某个变量中,例如我在'some data'
中存储data
?
假设我们将this
存储在$this
中。然后,console.log($this.data)
应该像console.log(this.data)
一样工作。
答案 0 :(得分:2)
我不知道你为什么要做你要问的事,但是你可以这样做:
var obj = {
data:'some data',
init:function(){
this.self = this;
console.log(this.data);
console.log(obj.data);
console.log(this.self);
}
}
obj.init();
如果你解释为什么要这样做,我们可能会更恰当地提出建议,没有理由将this
的值保存在实例变量中,因为this
的值是已经需要以便检索实例变量。
答案 1 :(得分:1)
如......分配?
var $this = this;
编辑:如果您的意思是这样的话:
var obj = {
selfReference: this
};
然后不,那是不可能的。你必须在之后分配它:
var obj = {};
obj.selfReference = obj;
我不知道为什么你最初想要这样做。
答案 2 :(得分:1)