jquery变量语法

时间:2009-12-16 18:15:59

标签: jquery syntax

我正在通过尝试了解其他人的代码来学习jQuery。我碰到了这个:

jQuery.fn.myFunc = function(options, callback) {

//stuff

  jQuery(this)[settings.event](function(e) {
    var self = this,
    $self = jQuery( this ),
    $body = jQuery( "body" );
     //etc.
  }

//more stuff

}

我的理解是$引用了jQuery对象。那么为什么要将$$self$body放在一起? self$self相同吗?

5 个答案:

答案 0 :(得分:214)

$ self $ 没什么关系,在这种情况下,这是jQuery的别名。有些人喜欢将一个美元符号与变量放在一起,以区分常规变量和jQuery对象。

示例:

var self = 'some string';
var $self = 'another string';

这些被声明为两个不同的变量。这就像在私有变量之前加下下划线。

一种流行的模式是:

var foo = 'some string';
var $foo = $('.foo');

这样,你知道$ foo后来是代码中的缓存jQuery对象。

答案 1 :(得分:27)

这是纯JavaScript。

$没有什么特别之处。它只是一个可以在变量名中使用的字符。

var $ = 1;
var $$ = 2;
alert($ + $$);

jQuery只是将其核心功能分配给名为$的变量。您已将this分配给名为self的局部变量以及使用this调用jQuery作为名为$self的全局变量的参数的结果。

它很难看,很脏,令人困惑,但$self$self都是碰巧有相似名称的不同变量。

答案 2 :(得分:9)

不,当然不是。它只是另一个变量名。您所谈论的$()实际上是jQuery core function$self只是一个变量。如果需要,您甚至可以将其重命名为foo,这不会改变任何事情。 $(和_)是Javascript标识符中的合法字符。

为什么这样做通常只是一些代码约定或避免与反向关键字发生冲突。我经常将它用于$this,如下所示:

var $this = $(this);

答案 3 :(得分:7)

自我和自我是不一样的。前者是“this”指向的对象,后者是jQuery对象,其“范围”是“this”指向的对象。类似地,$ body不是body DOM元素,而是jQuery对象,其范围是body元素。

答案 4 :(得分:2)

作为var名称中的前缀的dollarign是来自hungarian notation概念的用法。