【问题标题】:What is the $$ (double dollar sign) used for in angular?角度中使用的 $$(双美元符号)是什么?
【发布时间】:2013-10-12 19:49:15
【问题描述】:

我正在查看 angular 1.2 源代码,我只是好奇为什么某些函数以两个美元符号为前缀。这是某种约定吗?

【问题讨论】:

标签: javascript angularjs


【解决方案1】:
  • 单个$ 用于保留的公共标识符
  • 双$$ 用于保留的private标识符

引用docs:

$前缀命名约定

...

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

【讨论】:

    【解决方案2】:

    如果我可以补充:

    Angularjs Docs

    除了对 Angularjs 很重要之外,'$$' 或 '$' 只是变量名中允许的字符。 Angularjs 使用两者来确定对您和他们自己的开发团队的重要性。

    您可以用相同的方式命名所有变量;但为避免命名冲突,请远离这种做法。如果你这样做了,这里有一些例子......

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

    如果你愿意,这里是一个测试 JS 变量名的链接:

    Variable Name Validator

    这里还有一个指向 MDN 的链接,其中解释了允许的字符:

    MDN allowed characters link

    这是正文:

    变量

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

    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 是这样说的:

    $ 前缀命名约定 您可以创建自己的服务,实际上我们将在第 11 步中做到这一点。 作为命名约定,Angular 的内置服务、Scope 方法和其他一些 Angular API 在名称前有一个 $ 前缀。

    $ 前缀用于命名空间 Angular 提供的服务。为了防止碰撞 最好避免以 $ 开头的任何名称命名您的服务和模型。

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

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-04-11
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多