Nic*_*ver 51

典型的使用中,您通常会看到它们($this使用情况可能会有所不同):

  • this - 指你当前处理的处理程序中的DOM元素,但这可能是完全在其他情况下的另一个对象,但它始终是上下文.
  • $this- 通常由var $this = $(this)jQuery包装版本的缓存版本创建以提高效率(或链接$(this)在许多情况下获得相同).
  • $(this)- jQuery包装的元素版本,因此您可以访问其所有方法(特别是那些方法$.fn).

  • 在jQuery出名之前,我记得曾经看到$ this被用来引用父作用域对象,有点像var that。但是,我看到jQuery fenomena如何影响其含义。 (2认同)

Que*_*tin 32

  • this 是调用方法的对象
  • $this 是一个命名不佳的变量,没有特殊含义
  • $(this)$this唯一的参数调用命名不佳的函数

  • 我不同意你的#2,它是一个完全有效的名称,它确实是用于什么,它是一个jquery包装的版本`this` ...你会怎么称呼它?鉴于jQuery对象的`$ var`是一种广泛使用的约定?对于#3,你建议更换什么?有几个库选择这个(jQuery,MooTools,Prototype,Microsoft的......)是有原因的. (15认同)
  • 由于两个主要原因,`$`命名不佳.首先,它没有告诉你这个函数的作用,六个图书馆都将它用于*不同的*事情没有帮助,因为那些必须进入处理代码的人必须弄清楚正在使用什么库(当使用多个库时,它会变得更糟).其次,ECMA-262第3版规定"美元符号仅用于机械生成的代码",这是阻止此类代码与手写代码冲突的好方法.至于节省带宽,这就是缩小器的用途. (5认同)
  • $这绝对是jQuery对象$(this)的广泛使用的约定.甚至在我记得的jQuery UI插件中使用过.. (3认同)
  • @David - 第3版是1999年,当时地理位置是最重要的事情之一(我们真的想要基于标准*然后*?)并且几乎每个主要的图书馆都是梦想.看看*first*版本何时出现:Prototype:2005,jQuery:2006,MooTools:2006 ....当第3版发布时,事情发生了变化/演变,这甚至都不是问题. (3认同)

Ale*_*dev 9

在jQuery事件处理程序中:

  • this - 是您为其分配事件处理程序的DOM元素
  • $(this) - 是从该元素创建的jQuery对象
  • $this - 通常是一个保持结果的变量 $(this)

更普遍:

  • 函数内部的this是指调用函数的对象或原语.当函数用作构造函数时,它引用正在构造的新对象.任何函数之外都this指的是全局对象(window在非严格模式下).

    您可以在MDN上找到详细的详细说明.

  • $这是一个变量名.在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);
    
    Run Code Online (Sandbox Code Playgroud)
  • $(this)是一个函数调用,其中$是函数名,this是它的参数:

    var $ = alert;
    $(this); // [object Window]
    
    Run Code Online (Sandbox Code Playgroud)

    $本身没有任何特殊含义.但是jQuery将$()函数定义为一种简写jQuery().根据其参数,此函数可以执行许多不同的操作.