这三种形式有什么区别:
this
$this
$(this)
答案 0 :(得分:50)
在典型的用法中,您通常会看到它们($this
用法可能会有所不同):
this
- 指您当前处理的处理程序中的DOM元素,但这可能是完全在其他情况下的另一个对象,但它始终是上下文。$this
- 通常由var $this = $(this)
创建jQuery包装版本的缓存版本以提高效率(或链$(this)
以在许多情况下获得相同的效果)。$(this)
- 该元素的jQuery包装版本,因此您可以访问all its methods(具体为$.fn
中的那些)。答案 1 :(得分:31)
this
是调用方法的对象$this
是一个命名不佳的变量,没有特殊含义$(this)
调用命名不佳的函数$
,其中this
为唯一参数答案 2 :(得分:9)
在jQuery事件处理程序中:
this
- 是您为$(this)
- 是从该元素$this
- 通常是一个包含$(this)
更一般地说:
this 指的是调用函数的对象或原语。当函数用作构造函数时,它引用正在构造的新对象。在任何函数this
之外引用全局对象(非严格模式下的window
)。
$ this 是变量名称。在JavaScript中,变量名称可以以$
开头。有些人喜欢将它用作包含jQuery对象的变量的前缀:
var body = document.body; // no prefix for a plain DOM object
var $body = jQuery('body'); // prefix for the same object wrapped in jQuery
var $this = $(this);
$(this)是一个函数调用,其中$
是函数名,this
是其参数:
var $ = alert;
$(this); // [object Window]
$
本身没有任何特殊含义。但jQuery将$()
函数定义为jQuery()
的简写。根据其参数,此函数可以执行many different things。
答案 3 :(得分:1)
在jQuery的上下文中,'this'是调用方法的对象。 '$ this'确实是一个命名不佳的变量,没有特殊含义。 '$(this)'将'this'传递给jQuery,只要'this'是一个DOM对象,它将返回与'this'相关的jQuery对象。
答案 4 :(得分:0)
如果有更多背景信息,您的问题会更好。
但是我假设你在元素事件回调的上下文中询问变量(例如click
)。
this
是处理程序的上下文(对于DOM事件处理程序,通常是DOM元素)$this
通常用于存储$(this)
$(this)
返回包装this
的jQuery对象 - 有关详细信息,请参阅jQuery documentation。答案 5 :(得分:0)
扩展大卫所说的话:
$this
通常用于拥有当前范围中this
对象的副本。例如,对于var $this = this;
,您可以在当前范围内的任何位置使用变量$this
,并且始终能够引用该对象,如果仅使用this
引用则会更改...我个人不喜欢$this
命名约定,更喜欢var parentScope
$(this)
是一些函数(var $ = function(){}
),由jQuery或PrototypeJs等框架使用。使用它的原因是因为$
非常容易键入而不是someLongFunctionName
,并且因为它通常在代码中被称为很多次,所以它更容易被缩短