JavaScript中的下划线前缀仅是约定,例如Python私有类方法中的约定吗?
从2.7 Python文档中:
Python中不存在只能从对象内部访问的“私有”实例变量。但是,大多数Python代码遵循一个约定:以下划线开头的名称(例如_spam)应被视为API的非公开部分(无论是函数,方法还是数据成员) 。
这也适用于JavaScript吗?
以下面的JavaScript代码为例:
function AltTabPopup() { this._init(); } AltTabPopup.prototype = { _init : function() { ... } }
另外,使用带下划线的前缀变量。
... this._currentApp = 0; this._currentWindow = -1; this._thumbnailTimeoutId = 0; this._motionTimeoutId = 0; ...
只有约定?还是在下划线前缀后面?
欢迎来到2019!
似乎提出了扩展类语法以允许带#前缀的变量为私有的提议。Chrome 74 附带此支持。
#
_ 前缀变量名按照惯例被认为是私有的,但仍然是公共的。
_
尽管它与其他编程语言有很大不同,但该语法试图既简洁又直观。
为什么在所有Unicode代码点中选择标记#?
该提案于2017年7月进入第3阶段。自那时以来,对各种替代方案进行了广泛的思考和冗长的讨论。最后,这种思考过程和社区的持续参与导致对该存储库中的提案重新达成共识。基于该共识,有关此提案的实施正在向前推进。