gpt4 book ai didi

javascript - 如果匈牙利表示法最受贬低,为什么 "UpperCamel for constructors vs lowerCamel for everything else"如此受欢迎?

转载 作者:行者123 更新时间:2023-12-02 19:24:35 25 4
gpt4 key购买 nike

至少在 StackOverflow 上,Hungarian notation is most often considered to be a bad thing 似乎是这样(尽管少数人仍然赞成)。

现在,在过去几个月里我一直在进行大部分编码的 JavaScript 世界中,似乎已经接受了一种命名约定,该命名约定本质上非常相似,但我还没有看到有人反对它,那就是 UpperCamelCase命名对象构造函数与 lowerCamelCase 命名其他所有内容。

所以差异似乎只是表面上的:

  • 匈牙利表示法使用前缀,而 JavaScript 使用大小写。
  • 匈牙利表示法可以区分很多东西,而 JavaScript 只能区分“对象构造函数”和“非对象构造函数”。

有些人喜欢说“匈牙利系统”与“匈牙利应用程序”不同,前者表示类型,后者表示类型未涵盖的内容。在这种情况下,“匈牙利系统”通常仍然被认为是不好的,而“匈牙利应用程序”可能被认为是好的。

JavaScript 驼峰式大小写约定看起来更像是匈牙利系统,因此在这一点上不会获得任何优点。

人们反对匈牙利表示法的观点似乎仍然适用于 JavaScript 对象构造函数:

  • 编译器无论如何都知道类型。
  • IDE 在这方面做得更好。
  • 当类型发生变化时,它太脆弱了。
  • 它使代码变得困惑,使其更难以阅读。

那么这个 JavaScript 约定有什么不同之处,可以在更通用的匈牙利表示法不可行的情况下使用呢?

是不是缺少好的JavaScript IDE?它的使用范围有限,是否就不会那么糟糕呢?是因为动态语言实际上没有太多类型吗?因为它不能被过度使用,所以这不是问题吗?

(如果这属于程序员。SE 而不是 SO,请迁移。)

最佳答案

毕竟它更像是“应用程序匈牙利语”。

Javascript 不知道你的函数是构造函数还是普通函数。像调用普通函数一样调用构造函数可能会导致非常奇怪的意外结果(除非您使用 ES5 严格模式)。

我也不知道 IDE 将如何帮助您。 IDE 唯一能做的就是阻止您调用 var x = new plainFunction();var y = Constructor();,这意味着首先使用匈牙利表示法.

我不明白使用符号如何使代码更难阅读。

关于javascript - 如果匈牙利表示法最受贬低,为什么 "UpperCamel for constructors vs lowerCamel for everything else"如此受欢迎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175276/

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