什么是用于angular度的$(双美元符号)?

我正在看1.2angular度的源代码,我只是好奇为什么一些函数前缀两个美元的标志。 这是一种约定吗?

  • Single $为保留的公共标识符
  • Double $$为保留的私人标识符

引用文档 :

$前缀命名约定

如果您检查范围,您也可能会注意到一些以$$开头的属性。 这些属性被认为是私有的,不应该被访问或修改。

如果我可以补充:

Angularjs Docs

除了对Angularjs重要之外,“$$”或“$”只是variables名称中允许使用的字符。 Angularjs使用这两种方法来确定你和他们自己的开发团队的重要性。

你可以用同样的方法命名你所有的variables。 但要避免命名冲突,请远离这种做法。 这里有一些例子,如果你做…

 $$$$myVariableName; $myVariableName$; _myVariableName_; $$$$$$myVariableName$$$$$$$$ 

如果你愿意,这里是一个testingJSvariables名称的链接:

variables名称validation器

这里是一个链接到MDN以及解释允许的字符:

MDN允许字符链接

这里是文字:

variables

您可以使用variables作为应用程序中的值的符号名称。 variables的名称,称为标识符,符合一定的规则。

JavaScript标识符必须以字母,下划线(_)或美元符号($)开头; 后续字符也可以是数字(0-9)。 由于JavaScript区分大小写,所以字母包括字母“A”到“Z”(大写字母)以及字符“a”到“z”(小写字母)。

从JavaScript 1.5开始,您可以在标识符中使用ISO 8859-1或Unicode字母,如å和ü。 您也可以使用\ uXXXX Unicode转义序列作为标识符中的字符。

合法名称的一些例子是Number_hits,temp99和_name。

Angulajs在每个对象中包含了相当多的信息; 一些项目是针对Angularjs的,有些是针对开发者的,也就是说有些项目可能是不可编辑的,但是如果这是你要使用的项目,所有项目都可以参考。

但是,在将来的版本中,任何私人标识符可能会消失,因为Angularjs团队希望开发人员不要使用保留/私有名称。

在这里发布的“类似链接”是Angularjs所说的:

$前缀命名约定您可以创build自己的服务,实际上我们将在步骤11中完成该操作。作为命名约定,Angular的内置服务,Scope方法和一些其他的Angular API在前面有一个$前缀名称。

$前缀是有名称空间Angular提供的服务。 为了避免冲突,最好避免命名你的服务,并以$开头。

如果您检查范围,您也可能会注意到一些以$$开头的属性。 这些属性被认为是私有的,不应该被访问或修改。