在JavaScript或PHP中,函数前面的下划线代表什么意思?

3
我需要知道在函数、变量之前写下划线( _ )的含义,是仅仅用于描述某些内容,还是需要执行某些调用函数等操作。这与JS有关。
var _initMobile  ... //variable 
_addEvent(documentElement, [EVENT_TOUCHSTART ...) //event handler

PHP

function _getBackLink(&$node, $uri, $title) {}...// php function

事实上,我不知道如何寻找它。所以我在询问。

3
请点击这里 - Iralution
1
在 PHP 中,这是表示方法受保护的老派方式。不确定它在 JavaScript 中是否有实际意义。 - Anthony
3个回答

7

这只是一种编码规范而已。这些语言并没有以任何方式解释下划线。 在大多数情况下,开发人员使用下划线来“标记”函数为私有。


6
循规蹈矩总是好的做法。为什么要将SITE_NAME大写? 因为它是全局的,同理于此。
在JavaScript中: - 这意味着私有字段或私有方法的约定。这些方法仅供内部使用,不应在类外部调用。 - 私有字段包含内部使用的数据。它们不应从类的外部进行读取或直接写入。
关于PHP,这里有一个很好的答案: 引自该回答:“这源于PHP面向对象编程的旧版本(PHP 4)时期。那个版本的OO实现相当糟糕,并没有包括像私有方法这样的东西。为了弥补这一点,PHP开发人员在打算为私有访问的方法前加上下划线。在一些旧类中,您会看到`/**private*/ __foo() {`来增强其权重。” 我从未听说过开发人员将所有方法都加上下划线的情况,因此我无法解释这种现象的原因。

1
在我看来,这只是为了可读性而约定俗成的。当变量或函数名前面包含下划线时,两种语言都不会强制实施访问限制。 - Alok Swain
@AlokSwain,是的,但按照惯例做是好的。为什么要将SITE_NAME大写呢?因为它是全局变量。这里也是一样。 - Pratik Joshi
@PratikJoshi 为什么要实现没有功能的约定? - Teemu
谢谢,但我需要一些时间来思考和阅读关于私有方法或标记的内容。 - Anees Hikmat Abu Hmiad
@AnisHikmatAbu-hmiad,是的,你说得对,请解释一下“为什么要踩?我已经在回答中说过了”。 - Pratik Joshi
"避免使用表现出无能的惯例。" [道格拉斯·克罗克福德](http://javascript.crockford.com/code.html)。顺便说一句,我在你最后一次编辑后撤销了我的差评。 - Teemu

1

在我看来,这只是为了可读性而采用的惯例。当变量或函数名前带有下划线时,两种语言都不会强制施加访问限制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接