首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery变量语法

jquery变量语法
EN

Stack Overflow用户
提问于 2009-12-17 02:15:59
回答 4查看 384.8K关注 0票数 86

我正在通过理解别人的代码来学习jQuery。我遇到了这样的情况:

代码语言:javascript
复制
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相同

EN

回答 4

Stack Overflow用户

发布于 2009-12-17 02:30:34

这是纯JavaScript。

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

代码语言:javascript
复制
var $ = 1;
var $$ = 2;
alert($ + $$);

jQuery只是将它的核心函数赋给一个名为$的变量。您的代码将this赋值给一个名为self的局部变量,并将调用jQuery的结果作为参数this赋值给一个名为$self的全局变量。

它是丑陋的,肮脏的,令人困惑的,但是$self$self都是不同的变量,恰好有相似的名字。

票数 29
EN

Stack Overflow用户

发布于 2009-12-17 02:19:05

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

这样做的原因通常只是一些代码约定,或者是为了避免与颠倒的关键字冲突。我经常在$this中使用它,如下所示:

代码语言:javascript
复制
var $this = $(this);
票数 9
EN

Stack Overflow用户

发布于 2009-12-17 02:19:39

self和$self是不同的。前者是"this“指向的对象,后者是jQuery对象,其"scope”是"this“指向的对象。类似地,$body不是body DOM元素,而是jQuery对象,其作用域是body元素。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1916584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档