是什么这三种形式之间的差别:
this
$this
$(this)
是什么这三种形式之间的差别:
this
$this
$(this)
在典型使用你通常会看到他们像这样(的$this
使用可能会有所不同):
this
- 指的是你目前的处理程序的DOM元素,但是这可能在其他情况下完全是另一个对象,但它始终是上下文。$this
- 通常由var $this = $(this)
创建一个缓存版本的jQuery包装版本以提高效率(或在多数情况下关闭$(this)
以获得相同的结果)。$(this)
- 元素的jQuery包装版本,因此您可以访问all its methods(具体在$.fn
中的版本)。this
是在其上方法被调用的对象$this
是没有特殊含义$(this)
名为不佳变量调用不佳命名功能$
与this
作为其唯一参数lol。短而干净。我喜欢+1。 – 2010-10-08 10:16:06
他们的变量名称被选中...很差。 – PaulJWilliams 2010-10-08 10:17:01
我不同意你的#2,它是一个完全有效的名称,它是用来做什么的,它是'this'的jquery包装版本......你会怎么称呼它?因为jQuery对象的'$ var'是一个广泛使用的约定?对于#3,你建议什么替代品?有几个图书馆选择了这个(jQuery,MooTools,Prototype,Microsoft的....)。 – 2010-10-08 10:19:46
在jQuery的上下文中,'this'是调用方法的对象。 '$ this'确实是一个没有特殊含义的变量名称不多的变量。 '$(this)'将'this'传递给jQuery,只要'this'是一个DOM对象,jQuery就会返回一个与'this'关联的jQuery对象。
您的问题会更好地服务于更多的上下文。
但是我假设你在元素事件回调的上下文中询问变量(例如click
)。
this
是处理程序的上下文中(通常的DOM元素,在DOM事件处理程序的情况下)$this
通常用来存储$(this)
$(this)
结果返回jQuery对象那包装this
- 请参阅jQuery documentation了解更多信息。扩大在什么大卫说:
$this
通常用于有this
对象的副本在当前范围内。例如对于var $this = this;
,您可以在当前范围内的任意位置使用变量$this
,并始终能够引用该对象,否则该对象只会简单地用this
引用。我个人不喜欢的$this
命名规则,更喜欢像var parentScope
$(this)
是像jQuery或PrototypeJs一些框架使用的功能(var $ = function(){}
)。使用它的原因是因为$
是很容易的类型,而不是someLongFunctionName
因为它是在代码通常被称为许多时候,它更容易有它是尽可能短
在jQuery的事件处理:
this
- 是您分配事件处理程序$(this)
DOM元素 - 距离Tha创建一个jQuery对象吨元件$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
是它的参数:
var $ = alert;
$(this); // [object Window]
$
本身没有任何特殊的含义。但jQuery将$()
函数定义为jQuery()
的简写。根据它的参数,这个函数可以做many different things。
在jQuery出名之前,我记得看到'$ this'被用来引用父范围对象,有点像'var that'。不过,我看到jQuery fenomena如何影响它的含义。 – 2010-10-08 10:30:11
这个答案假设我们处在一个事件处理程序中:Alisey的回答更一般 – meouw 2010-10-08 11:49:24
@meouw - 我不认为它假设,我立即告诫它:“但这可能是完全在其他情况下的另一个对象。 *当你看到这一点时,大部分时间都是在那里(我们主要是事件驱动),但不是唯一的地方。 – 2010-10-08 11:52:58