奇怪的JavaScript语句,它是什么意思?

奇怪的JavaScript语句,它是什么意思?,javascript,Javascript,我看到这个代码,它在做什么 var obj = this; 它正在创建一个变量“obj”,并将其设置为当前上下文 因此,例如,如果它是全局级别的,那么这将是当前的DOM窗口。它将创建一个变量“obj”,并将其设置为当前上下文 因此,例如,如果它是全局级别的,则该将是当前DOM窗口。设置当前第一类函数的本地副本,该函数将在其中进行设置 这在jquery中经常使用,因为当您使用选择器时,它具有不同的含义 说我有一个 function Person() { this.name = "gnost

我看到这个代码,它在做什么

var obj = this;

它正在创建一个变量“obj”,并将其设置为当前上下文


因此,例如,如果它是全局级别的
,那么这将是当前的DOM窗口。

它将创建一个变量“obj”,并将其设置为当前上下文


因此,例如,如果它是全局级别的
,则该
将是当前DOM窗口。

设置当前第一类函数的本地副本,该函数将在其中进行设置

这在jquery中经常使用,因为当您使用选择器时,它具有不同的含义

说我有一个

function Person() {
   this.name = "gnostus";
}

我需要从jquery选择器中访问name,当它成为一个html元素时,我会将我的对象存储到一个copy变量中,当我在jquery上下文中时,使用,
obj.name
代替
this.name

这是设置当前正在设置的第一类函数的本地副本

var obj = this;
这在jquery中经常使用,因为当您使用选择器时,它具有不同的含义

说我有一个

function Person() {
   this.name = "gnostus";
}
我需要从jquery选择器中访问name,在jquery选择器中,name成为一个html元素,我会将我的对象存储到一个copy变量中,并在jquery上下文中使用,
obj.name
代替
this.name

var obj = this;
正在声明,将obj与当前作用域的父对象一起分配

几个月前我第一次读这篇文章是为了弄清楚关键词“this”

正在声明,将obj与当前作用域的父对象一起分配

几个月前我第一次读这篇文章是为了弄清楚关键词“this”


this关键字用于指函数的所有者,或this关键字用于的变量。
有关详细的了解,请访问this关键字用于指函数的所有者,或使用this关键字的变量。
要详细了解,请访问它会保存对当前上下文中该
的引用,以便以后使用。

它会保存对当前上下文中该
的引用,以便以后使用。

它只是存储该
对象的当前引用,将来使用。它很有用,因为在JS中,这个
的值取决于上下文。

它只是存储这个
对象的当前引用,以便将来使用。它很有用,因为在JS中,
的值取决于上下文。

它取决于该语句的位置。它将当前对象的引用指定给变量“obj”

例如,以下代码将打开警报窗口并显示[window object]。这是因为我们在主体区域中检查“this”的值(不在任何对象事件处理程序中,等等)


警惕(这个);

这取决于此语句的位置。它将当前对象的引用指定给变量“obj”

例如,以下代码将打开警报窗口并显示[window object]。这是因为我们在主体区域中检查“this”的值(不在任何对象事件处理程序中,等等)


警惕(这个);

我能想到的这种代码有意义的唯一上下文是使当前上下文(this)在闭包中可用

所以代码应该是这样的:

var obj = this;
setTimeout(function() {
    obj.someMethod();
}, 1000);

这将在1秒后调用当前上下文对象上的方法“someMethod”。

我能想到的唯一上下文是在闭包中使用当前上下文(this)

所以代码应该是这样的:

var obj = this;
setTimeout(function() {
    obj.someMethod();
}, 1000);

这将在1秒后对当前上下文对象调用方法“someMethod”。

您对其中的哪一部分感到困惑?我们需要知道在哪个上下文中(这是哪个函数?)。我想更有趣的是:为什么要这样做?回答:这是一个带有变量声明的函数,它用这个值初始化声明的变量obj。你对其中的哪一部分感到困惑?我们需要知道在哪个上下文中(在哪个函数中?)。我认为更有趣的是:为什么要这样做?回答:这是一个带有变量声明的函数,它用this的值初始化声明的变量obj。其中“later”可能表示“in closures”。其中“later”可能表示“in closures”我确实怀疑jQuery就是这个问题的上下文。我确实怀疑jQuery就是这个问题的上下文。