公共函数的Javascript命名约定前缀为美元符号

时间:2014-03-22 14:40:45

标签: javascript

/**
 * @author paula
 */

function A(name){
    this.name = name;
    this.sayHi();
    this.$sayHi();
    this.sayBye();
};

(function(){
    this.sayHi = function(){
        console.log("[sayHi] Hi there, "+ this.name);
    };

    this.$sayHi = function(){
        console.log("[$sayHi] Hi there, " + this.name);
    };

    this.sayBye = function(){
        console.log("[sayBye] Bye bye now, " + this.name);
    };
}).call(A.prototype);

var objA1 = new A("Luca");

发现这篇文章:javascript.crockford.com/code.html其中提到"不要在名称中使用$(美元符号)或\(反斜杠)。大多数变量和函数应以小写字母"

开头

我有一些框架代码,其中包含许多以美元符号为前缀的函数(看起来类似于$ sayHi的函数)。是否以$为前缀的函数用于特殊目的?感谢。

3 个答案:

答案 0 :(得分:0)

你永远必须为带有美元符号的任何东西添加前缀,它只是jQuery等一些库中的热门选择,因为$通常不被用作普通变量名称。美元符号是有效的变量名称,因此可用于命名任何变量。

this.$sayHi=function(){/*code*/};

this.sayHi=function(){/*code*/};

只是两个不同的变量名,分配了不同的东西。您可以根据需要为变量命名,但在其前面加上一个美元符号并不会使它变得特别。

另外值得注意的是,在jQuery和类似的库/框架中,美元符号后面总会有一个点。基本上,框架只想占用一个全局变量,并且它们使它成为美元符号,没有人真正应该将其用作变量名称,因为它实际上是无用的。

答案 1 :(得分:0)

按照这样的ECMA 5.1 Standard specification, a variable's identifier is defined

Identifier ::
    IdentifierName but not ReservedWord

IdentifierName定义如下

IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart

IdentifierStart已定义,如此

IdentifierStart ::
    UnicodeLetter
    $
    _ 
    \ UnicodeEscapeSequence

因此,$只不过是变量名称中的一个字符。

答案 2 :(得分:0)

就javascript而言,美元符号就像任何其他字母一样。例如:

var $ = 5;
console.log($);

函数名称也可以有美元符号:

function $() {
   console.log("Hello world!");
}
$();

JQuery(和其他库)创建一个函数美元符号来做惊人的事情。它是这些函数的一个好名称,因为您不太可能在代码中创建名为$的方法。