Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以美元符号为前缀的公共函数的Javascript命名约定_Javascript - Fatal编程技术网

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

以美元符号为前缀的公共函数的Javascript命名约定,javascript,Javascript,找到本文:javascript.crockford.com/code.html,其中提到名称中不使用$dollar符号或\反斜杠。大多数变量和函数应以小写字母开头 我有一些框架代码,其中有许多以美元符号函数为前缀的函数,这些函数看起来类似于$sayHi。前缀为$的函数是否用于特殊目的?谢谢。您永远不必在任何东西的前面加上美元符号,它只是一些库(如jQuery)中的一个流行选择,因为美元不经常用作普通变量名。美元符号是一个有效的变量名,因此它可以用来命名任何变量 /** * @author pa

找到本文:javascript.crockford.com/code.html,其中提到名称中不使用$dollar符号或\反斜杠。大多数变量和函数应以小写字母开头

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

您永远不必在任何东西的前面加上美元符号,它只是一些库(如jQuery)中的一个流行选择,因为美元不经常用作普通变量名。美元符号是一个有效的变量名,因此它可以用来命名任何变量

/**
 * @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");

只是两个不同的变量名,分配了不同的内容。你可以随意命名一个变量,但是在它前面加上一个美元符号并不能使它变得特别

另外,值得注意的是,在jQuery和类似的库/框架中,美元符号后面总是有一个点。基本上,这些框架只想使用一个全局变量,并将其命名为美元符号,没有人真的应该将其用作变量名,因为它有点不描述性。

就像这样

this.sayHi=function(){/*code*/};
Identifier ::
    IdentifierName but not ReservedWord
IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart
而IdentifierName是这样定义的

this.sayHi=function(){/*code*/};
Identifier ::
    IdentifierName but not ReservedWord
IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart
IdentifierStart的定义如下

this.sayHi=function(){/*code*/};
Identifier ::
    IdentifierName but not ReservedWord
IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart

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

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

IdentifierStart ::
    UnicodeLetter
    $
    _ 
    \ UnicodeEscapeSequence
函数名也可以有美元符号:

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

JQuery和其他库创建了一个函数美元符号来完成令人惊奇的事情。这是这些函数的好名字,因为您不太可能在代码中创建名为$的方法

美元符号是一个有效的标识符,没有区别。当函数名按字母顺序排序时,美元符号出现在字母字符上方,有助于将框架函数与您自己的函数分开。嘿,它不是重复的。在我看来,美元符号像是重复的。两者的区别是什么?$可能是最简单且免费的非保留javascript字符-这就是为什么jquery使用它作为其函数标识符的原因,基本上是最短的东西,在jquery流行之前被广泛使用,这让很多使用它的人感到恼火:请注意,它不是一个变量,但有一个问题——所有的识别码都被允许。好的,谢谢你的回答。看起来前缀为多个美元符号$$sayHi或$$$sayHi的函数名也是有效名称。使函数/方法私有化的Python约定是在其前面加上uuu下划线。$JS中的美元符号与Python中的下划线含义相同?@pallacogeanu正如你所说,这只是一种约定。在JS中,人们也使用_uu作为内部或私有变量。本文中指出:不要在名称中使用$dollar符号或\反斜杠。不要将uuUnderbar用作名称的第一个字符。它有时用来表示隐私,但实际上并不提供隐私。如果隐私很重要,请使用提供私人成员的表格。避免表现出缺乏能力的惯例。大多数变量和函数应该以小写字母开头。我有一些代码,其中以美元符号为前缀的函数返回数组,我不知道这是新的约定还是其他。谢谢你的回答。我知道在JS中,用美元符号作为任何函数名的前缀是完全有效的。但我想知道的是,当您决定在函数前面加上$时,是否有任何消息要传递给其他开发人员,该消息涉及如何使用该方法使他们知道该函数是公共函数还是私有函数。