gpt4 book ai didi

javascript - 隐私 : Underscored prototype properties or encapsulated variables?

转载 作者:行者123 更新时间:2023-11-28 10:24:01 26 4
gpt4 key购买 nike

有件事一直困扰着我,就像人们意识到了我没有意识到的事情一样。我正在看一个 FOSS 示例(下面进行了简化)...每当我有一个 JavaScript 类时,我更喜欢 Crockford 的变量隐藏方法:

var MyObject = function(handler) {
var x = 1, y = 2;
function myFunction() {
handler(x + y);
}
return {
"myFunction" : myFunction
}
}

不过,有些开发人员使用带下划线的私有(private)属性。

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);
}

我理解其中的区别,但冒着听起来很愚蠢的风险:其中一个比另一个有我没有看到的优势吗?我的意思是,我不喜欢“私有(private)”符号;他们不是私有(private)的。我意识到原型(prototype)链是在对象之间共享的,但它们是私有(private)的。由于无法在运行时更改所有对象的 x 和 y 或节省内存,我不确定原因。

我确信这是有充分理由的,但如果有人愿意进一步启发我,那就太好了。

最佳答案

如果您喜欢 Crockford 的作品,我建议您观看他的 JavaScript 系列,其中他描述了为什么他避免使用下划线并更喜欢驼峰符号。

http://www.yuiblog.com/crockford/

直接回答你的问题,使用下划线没有性能优势,这只是一种编程风格偏好。

关于javascript - 隐私 : Underscored prototype properties or encapsulated variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com