代码之家  ›  专栏  ›  技术社区  ›  oshirowanen

_这个__,_$这个_和_$这个_有什么区别?

  •  37
  • oshirowanen  · 技术社区  · 15 年前

    这三种形式有什么区别:

    this
    $this
    $(this)
    
    6 回复  |  直到 12 年前
        1
  •  50
  •   Nick Craver    15 年前

    典型的 你通常会看到这样的用法 $this 用法可能有所不同):

    • this -引用当前所在处理程序中的DOM元素,但这可能是其他情况下的另一个对象,但它始终是上下文。
    • $此 -通常由 var $this = $(this) jquery打包版本的缓存版本,用于提高效率(或断链) $(this) 在很多情况下也是如此)。
    • 美元(这个) -元素的jquery包装版本,因此您可以访问 all its methods (那些在 $.fn 具体而言)。
        2
  •  31
  •   Matteo Riva    15 年前
    • this 是调用方法的对象
    • $this 是一个名称不好的变量,没有特殊意义
    • $(this) 调用名称不正确的函数 $ 具有 作为唯一的论据
        3
  •  9
  •   Alexey Lebedev    12 年前

    在jquery事件处理程序中:

    • this -是分配给事件处理程序的DOM元素
    • $(this) -是从该元素创建的jquery对象
    • $this -通常,保存 美元(这个)

    更一般地说:

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

      你可以找到一个 good detailed explanation on 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);
      
    • 美元(这个) 是函数调用,其中 $ 是函数名,并且 它的论点是:

      var $ = alert;
      $(this); // [object Window]
      

      $ 本身没有任何特殊意义。但是jquery定义了 $() 用作 jQuery() . 根据其参数,此函数可以 many different things .

        4
  •  1
  •   Jez    15 年前

    在jquery上下文中,“this”是调用方法的对象。$this'确实是一个名称不好的变量,没有特殊的含义。$(this)'将'this'传递给jquery,只要'this'是dom对象,jquery将返回与任何'this'关联的jquery对象。

        5
  •  0
  •   tKe    15 年前

    你的问题最好有更多的背景。

    不过,我假设您在查询元素事件回调上下文中的变量。( click 例如)。

    • this 是处理程序的上下文(通常是dom元素,对于dom事件处理程序)
    • $this 通常用于存储 $(this)
    • 美元(这个) 返回包装 -见 jQuery documentation 更多信息。
        6
  •  0
  •   Luca Matteis    15 年前

    扩展大卫所说的:

    • $this 通常用来复制 this 当前作用域中的对象。例如, var $this = this; 您可以使用变量 $此 在当前范围内的任何地方,并且始终能够引用如果简单地引用 …我个人不喜欢 $此 命名约定,喜欢 var parentScope

    • $(this) 是一个函数 var $ = function(){} )用于一些框架,如jquery或prototypejs。使用它的原因是 $ 很容易打字而不是 someLongFunctionName 因为它通常被称为 许多的 代码中的时间越短越好