如果匈牙利的符号大多被贬低,为什么“UpperCamel for constructors vs lowerCamel for everything else”如此受欢迎? [关闭]

问题描述 投票:0回答:1

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

现在在JavaScript世界里,我过去几个月里一直在做的大部分编码似乎已经接受了一个命名约定,它本质上非常相似但我还没有看到有人反对它,那就是UpperCamelCase命名对象建设者与lowerCamelCase说出其他一切。

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

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

有些人喜欢说“系统匈牙利语”与“申请匈牙利语”不同,前者表示类型,后者表示类型不包括的内容。在这种情况下,“系统匈牙利语”通常仍然被认为是坏的,而“申请匈牙利语”可能被认为是好的。

JavaScript骆驼套管惯例看起来更像匈牙利系统,因此在这一点上不会获得任何优点。

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

  • 无论如何,编译器都知道类型。
  • IDE在这方面要好得多。
  • 当类型改变时,它太脆了。
  • 它使代码更难以通过混乱来阅读。

那么这个JavaScript约定有什么不同呢,哪个更通用的匈牙利表示法不行?

是否缺乏良好的JavaScript IDE?它有限的使用范围是否会让它变得不那么糟糕?是不是因为动态语言在类型方面没有太大的影响?它不是一个问题,因为它不能过度使用?

(如果这属于programmers.SE而不是SO请迁移。)

javascript naming-conventions camelcasing hungarian-notation object-construction
1个回答
2
投票

毕竟它更像是“申请匈牙利人”。

Javascript不知道您的函数是构造函数还是普通函数。并且调用构造函数就好像它是一个普通的函数可能会导致一个非常奇怪的不希望的结果(除非你使用ES5严格模式)。

我不知道IDE会如何帮助你。 IDE唯一能做的就是阻止你调用var x = new plainFunction();var y = Constructor();,这意味着首先使用匈牙利符号。

我没有看到使用符号如何使代码更难读。

© www.soinside.com 2019 - 2024. All rights reserved.