gpt4 book ai didi

javascript - 用于标记私有(private)成员的前导下划线

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:35:25 29 4
gpt4 key购买 nike

据我所知,在 JavaScript 中没有好的解决方案来创建私有(private)成员。解决方案描述 here效率不高,因为私有(private)成员成为对象的一部分,而不是原型(prototype),因此需要更多内存。
所以,我决定只使用 Python 实践——用前导下划线标记私有(private)内容,让其他人知道 makred 属性或方法不打算从外部使用。
但是有一个著名的代码质量工具- JSLint , 它建议不要使用前导或尾随下划线。
这背后的原理是什么?这只是代码风格建议还是下划线会导致更严重的问题?如果它只是 JS 社区的代码风格约定,它有多强?

最佳答案

JSLint 是一个很好的工具,但它表达了关于其作者风格的编码实践的意见。 Read about what those preferences are here .在 JavaScript 解析器中使用前导下划线/下划线没有坏处,该工具被编程为将此视为不良约定并警告您不要使用它。如果使用前导下划线是您的偏好并且有意义,请使用它们。

如果您不想在使用以下划线/下划线开头的标识符时在 JSLint 中看到警告,则 JSLint 中有一个设置可以对您隐藏这些警告。像这个例子一样包装你不想被评估的代码,你不会看到警告:

 /*jslint nomen: true */
var _gaq = {};
/*jslint nomen: false */

如果您从文件中评估代码,这是正确的,但如果您在 JSLint 网站上,则有一个选项“容忍...悬空 _ 在标识符中”也可以删除警告。

请注意,这样做可能会导致 JSHint 解析文件的方式出现问题。看看这个显示 JSLint vs JSHint 的链接关于那个旗帜。但是,如果您打算按照 JSLint 标准进行混合,那么混合使用 JSHint 可能会造成一些困惑。

如果不使用闭包,JavaScript 中就不会存在私有(private)变量,但这并不是每个项目执行都需要的模式。如果您想了解更多关于 JavaScript 闭包的信息,请查看 Ben Nadel's wonderful blog postNetTuts+

关于javascript - 用于标记私有(private)成员的前导下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094328/

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