【问题标题】:Difference between defining variable as var $a=$() and var a?将变量定义为 var $a=$() 和 var a 之间的区别?
【发布时间】:2012-10-03 20:21:04
【问题描述】:

有时在 JQuery 中我们将变量定义为var $a=$(),这就像声明一个函数。所以我想知道如果我们只将变量定义为var a,它会有什么改变吗?

【问题讨论】:

  • 你的意思是“没有 $ 符号”吗?如果是这样,那就没什么区别了,它只是一个约定,有时用来表明你正在使用一个 jQuery 对象。

标签: javascript jquery coding-style


【解决方案1】:

如果你的意思是:

var a = $(/* Object or Selector gets passed here */)

那么唯一的区别就是名称。开发者使用$a表示该值已经是jQuery-ied。不使用它不会改变任何功能,但会对未来的开发人员不利。

【讨论】:

  • $() 是 jQuery 函数的快捷方式。它要么传递一个对象,要么传递一个选择器。 api.jquery.com/jQuery
【解决方案2】:

不,没有什么不同。在这种情况下,$aa 相同。它只是一个变量名。

【讨论】:

    【解决方案3】:

    通常我更喜欢在命名 jQuery 对象前加上 $ 符号。这是在代码中识别 jQuery 对象的惯例。

    但这只是另一个变量名;;

    var a = 2;
    var $a = $('#something');
    

    【讨论】:

      【解决方案4】:

      基本上,这是对 javascript 允许的 Crockford's coding convention 违规行为。它用于区分 jQuery 对象和 javascript DOM 元素。

      例如

      var a = document.getElementById('a'); // DOM element
      var $a = $(a); // jQuery object for the DOM element with ID 'a'
      

      【讨论】:

        【解决方案5】:

        $ 是 JS 标识符中允许的字符,它没有区别。 $(obj) 用 jQuery 对象包装了对象 obj,并用许多额外的行为来装饰 obj。

        这些是合法的 Javascript 变量名:

        $a=1;
        a$$$=1;
        $a=1;
        

        函数 $ 是 jQuery 的别名,如果您执行以下操作:

        您的 HTML:

        <img src='logo.png' id='site_logo'/>
        

        你的 JS:

        var logo = $('#site_logo');
        logo.fadeOut();
        

        fadeOut 方法不属于 img 元素,而是属于 jQuery 包装器。

        【讨论】:

          猜你喜欢
          • 2019-03-20
          • 2015-05-27
          • 2017-09-12
          • 1970-01-01
          • 2020-12-28
          • 1970-01-01
          • 2017-01-21
          相关资源
          最近更新 更多