【问题标题】:What does an underscore before a function denote? [duplicate]函数前的下划线表示什么? [复制]
【发布时间】:2021-04-21 02:44:53
【问题描述】:

我希望这不是“基于意见”,但函数前的下划线表示什么?

例如_someFunction(){...}.

我将对 scss 中的部分文件使用下划线,例如 _buttons.scss_layout.scss... 但我在 JavaScript 中也经常看到它,但不太确定它的含义,除了它似乎是为了仅语义,而不是更改功能。

【问题讨论】:

  • 我看到它经常用来表示对象/类中的私有属性/方法

标签: javascript typescript


【解决方案1】:

就 javascript 而言,它没有任何意义。

就 javascript 编程文化而言,它表示 私有 函数/方法。

Javascript 没有私有绑定。对象中的所有方法都是公共的(至少到 ES6)。但是有时程序员需要告诉其他程序员不要使用特定的函数。这些功能仅供内部使用,将来不会维护。

下划线符号是从 Perl 文化中采用的,因为 Perl 也是一种没有私有方法的语言。

【讨论】:

    【解决方案2】:

    通常,它是一个标记,用于指示将函数视为“私有”。根据上下文,私有可能意味着一些不同的东西,例如:

    • 不应在文件外部调用此函数。
    • 类的这个方法只能被这个类的其他方法调用。

    这通常还意味着,作为库的用户,您不应依赖这些方法在次要版本之间不进行更改。它们不是公共 API。

    此外,一些工具会使用下划线,例如在自动生成文档时不会考虑它。

    这是 100% 的约定,所以没有什么能阻止您实际使用它。

    【讨论】:

      【解决方案3】:

      这只是表示它是私有函数的一种方式,因此只能在该脚本中的 js 中使用,而不能在 html 中使用

      【讨论】:

        猜你喜欢
        • 2011-09-03
        • 2017-11-27
        • 2012-01-31
        • 1970-01-01
        • 1970-01-01
        • 2022-12-18
        • 2010-10-24
        相关资源
        最近更新 更多