Hjoe Asked:2025-01-13 03:12:51 +0800 CST2025-01-13 03:12:51 +0800 CST 2025-01-13 03:12:51 +0800 CST 为什么 Object.keys 命令要大写? 772 不是所有的JS命令都要大写吗? javascript 1 个回答 Voted Best Answer Stanislav Volodarskiy 2025-01-13T03:56:37+08:002025-01-13T03:56:37+08:00 什么 JavaScript 中没有命令。并且有一个类型Object和一个方法Object.keys()。 Object 类型代表JavaScript 数据类型Object之一。它用于关联集合和更复杂的设计。对象可以通过构造函数或特殊语法创建。Object() 原来的: 该类型代表JavaScript 的Object一种数据类型。它用于存储各种带键的集合和更复杂的实体。可以使用构造函数或对象初始值设定项/文字语法来创建对象。Object() 由于Object这是一种类型,因此用大写字母书写。 Object.keys() 静态方法Object.keys()返回其自己的可枚举字符串属性的名称数组。 原来的: 静态方法Object.keys()返回给定对象自己的可枚举字符串键控属性名称的数组。 既然keys是方法,就用小写的。 为什么 因为我们需要修复语言库中的错误而不是破坏旧代码。 字典对象最初没有一种简单的方法来迭代键。这是列出键的代码: for (var name in myObject) { if (myObject.hasOwnProperty(name)) { ... } } 如果不使用if,那么枚举键将不仅包括键本身,还包括从对象祖先继承的属性名称。要编写可与对象后代(这些几乎都是复杂对象)一起使用并且不会选择不必要的属性的代码,您需要在任何地方编写此代码if。麻烦。 如何修复它?制作一个新的for。好吧,总而言之,JavaScript 有四种不同的形式for。有时您需要外面的钥匙列表for。 然后让我们添加新方法!但这个方法应该被添加到所有继承者对象中Object。这意味着它将破坏大量列出属性但内部Object没有安全功能的代码if。这是被禁止的。 然后让我们添加一个新的全局函数!不幸的是,在改进语言的过程中,全局命名空间已经相当混乱。新的简单名称将破坏一些遗留代码并增加垃圾量。最好不要。 然后我们将新方法作为属性放置在现有的全局名称中。后代中的全局命名空间和方法集不会改变,我们不会破坏旧代码。最好的选择是静态方法类型Object,但新方法是相关的Object。
什么
JavaScript 中没有命令。并且有一个类型
Object
和一个方法Object.keys()
。Object
原来的:
由于
Object
这是一种类型,因此用大写字母书写。Object.keys()
原来的:
既然
keys
是方法,就用小写的。为什么
因为我们需要修复语言库中的错误而不是破坏旧代码。
字典对象最初没有一种简单的方法来迭代键。这是列出键的代码:
如果不使用
if
,那么枚举键将不仅包括键本身,还包括从对象祖先继承的属性名称。要编写可与对象后代(这些几乎都是复杂对象)一起使用并且不会选择不必要的属性的代码,您需要在任何地方编写此代码if
。麻烦。如何修复它?制作一个新的
for
。好吧,总而言之,JavaScript 有四种不同的形式for
。有时您需要外面的钥匙列表for
。然后让我们添加新方法!但这个方法应该被添加到所有继承者对象中
Object
。这意味着它将破坏大量列出属性但内部Object
没有安全功能的代码if
。这是被禁止的。然后让我们添加一个新的全局函数!不幸的是,在改进语言的过程中,全局命名空间已经相当混乱。新的简单名称将破坏一些遗留代码并增加垃圾量。最好不要。
然后我们将新方法作为属性放置在现有的全局名称中。后代中的全局命名空间和方法集不会改变,我们不会破坏旧代码。最好的选择是静态方法类型
Object
,但新方法是相关的Object
。