javascript属性存储此

javascript属性存储此,javascript,jquery,Javascript,Jquery,有可能出现以下情况吗 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)都返回相同的值 是否可以将此存储在某个变量中,如我在数据中存储的某些数据 假设我们以某种方式将此存储在$t

有可能出现以下情况吗

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
中。然后,
console.log($this.data)
的工作方式应该与中的
console.log(this.data)
类似。。。任务

var $this = this;
编辑:如果你的意思是这样的:

var obj = {
    selfReference: this
};
那么不,那是不可能的。之后您必须分配它:

var obj = {};
obj.selfReference = obj;

不过,我不知道你为什么要这么做。

我不知道你为什么要按你的要求去做,但你可以做到:

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
的值。

存储
this
在Javascript中非常频繁,以避免函数范围出现问题。通常,用于存储
this
的变量称为
that
,如下所示:

var=this

您还可以通过使用设置正在调用的函数的this对象

myFunction.call(myCustomThisReference, param1, param2)


有关更多详细信息,请参见和

是的,这是可能的,但不是一步完成的。你到底想实现什么?(注意强调“实际上”…@MattBall,因为我不能在回调函数中使用它,但是如果我首先存储它,我想我可以在回调函数中调用,也可以在直接方法中调用它…你是说我们可以编写这样的代码:
var obj={var$this=this;data:'some data',init:function(){console.log(this.data);console.log(obj.data);console.log($this.data);}}obj.init();
…这不会work@hamidraza:不,你不能这样做。行属于函数内部,现在我很困惑。你想做什么?在“数据”中存储“某些数据”的方法,是否可以在“$this”中存储“this”?@hamidraza:不完全相同,但你为什么要首先这样做?@hamidraza:将它作为正则变量存储在包含回调函数的方法中。想想看,如果你想保留对一个对象的引用,如果你首先需要它来获取对该对象的引用,那么将它放在对象中又有什么用呢?我不想将它存储在任何函数中,我想将它作为数据存储。因此t我可以在任何函数或方法中调用它。因为我不能在回调函数中使用它,但是如果我首先存储它,我想我可以在回调函数中调用它,也可以在直接方法中调用它…@hamidraza-请向我们展示您要在哪里使用存储的
this
值的整个代码。在您的示例中,
这个
已经存储在
obj
变量中,因此可以从那里使用它。
obj.data
将引用您存储的数据。我期望的代码是这样的…
var obj={data:'some data',$this:this,init:function(){console.log(this.data);console.log(obj.data);console.log($this.data);}}}obj.init()
@hamidraza-你不能像你建议的那样在静态声明中使用
this
,因为
this
在该点上没有设置为对象。这没有任何意义,因为
obj
已经包含该值。这对你也没有任何好处,因为你需要
this
的值已经设置为一个值成功吧。
myFunction.apply(myCustomThisReference, [param1,param2]