有些东西一直困扰着我,就像人们意识到我不知道的东西一样。我正在看一个FOSS示例,(简化如下)...每当我有一个JavaScript类时,我更喜欢Crockford的变量隐藏方法:
var MyObject = function(handler) {
var x = 1, y = 2;
function myFunction() {
handler(x + y);
}
return {
"myFunction" : myFunction
}
}
但是,有些开发人员使用强调私有属性。
var MyObject = function(handler) {
this._handler = handler;
}
MyObject.prototype._x = 1;
MyObject.prototype._y = 2;
MyObject.prototype.myFunction = function() {
this._handler(this._x + this._y);
}
我理解这种差异,但冒着听起来很愚蠢的风险:一个人比另一个人更有优势吗?我的意思是,我不喜欢“私人”符号;他们不是私人的。我意识到原型链是在对象之间共享的,但它们是私有的。如果没有在运行时改变所有对象的x和y,或者保存内存,我不确定原因。
我确信这是有充分理由的,但是如果有人想要进一步启发我,那就太棒了。
答案 0 :(得分:0)
使用_
表示法的三个原因:
在任何一个方向上都有其他论点,但它更具哲学性 - 关于是否信任程序员使用您的代码或执行“良好实践”,但我不会去那里;)
答案 1 :(得分:0)
如果你喜欢Crockford的作品,我建议观看他的JavaScript系列,在那里他描述了为什么他避免使用下划线并喜欢camelNotation。
http://www.yuiblog.com/crockford/
要直接回答您的问题,使用下划线没有性能优势,它只是一种编程风格偏好。