JavaScript 中的 ES5 Object 方法用于操作和保护 obejcts。ECMAScript 5 (ES5) 是 2009 年引入的语言的重要修订版。它为 JavaScript 添加了许多对象方法。
这些方法为我们提供了遍历对象属性、操作值和对对象执行各种操作的有效方法。对象操作是 JavaScript 编程的一个基本方面。
JavaScript ES5 对象方法
在 ES5 中,添加了与对象相关的方法来操作和保护对象。下表重点介绍了对象方法及其描述 -
操作对象的方法
JavaScript 包含内置构造函数,我们在下表中列出了这些构造函数。
Sr.No. | 方法 | 描述 |
---|---|---|
1 | create() | 使用指定的原型对象创建新对象。 |
2 | defineProperty() | 克隆对象并向其原型添加新属性。 |
3 | defineProperties() | 将属性定义到特定对象中并获取更新的对象。 |
4 | getOwnPropertyDescriptor() | 获取对象属性的属性描述符。 |
5 | getOwnPropertyNames() | 获取对象属性。 |
6 | getPrototypeOf() | 获取对象的原型。 |
7 | keys() | 以数组格式获取对象的所有键。 |
保护对象的方法
Sr.No. | 方法 | 描述 |
---|---|---|
1 | freeze() | 防止通过封装对象来添加或更新对象属性。 |
2 | seal() | 封装对象。 |
3 | isFrozen() | 检查对象是否已封装。 |
4 | isSealed() | 检查对象是否封装。 |
5 | isExtensible() | 检查对象是否可扩展。 |
6 | keys() | 以数组格式获取对象的所有键。 |
7 | preventExtensions() | 防止对象的原型更新. |
让我们借助一些示例来了解上面列出的每种方法 -
JavaScript Object.create() 方法
JavaScript Object.create() 方法使用指定的原型对象和属性创建一个新对象。它是 JavaScript 中的 Static(静态)方法。
JavaScript 中 Object.create() 方法的语法如下 –
Object.create() 方法中的参数如下 -
- proto - 用作新对象原型的对象。
- propertiesObejct (optaional) - 一个定义新对象属性的对象。
在下面的示例中,使用 person 对象作为其原型创建 student 对象。
输出
Doe
18
JavaScript Object.defineProperty() 方法
您可以使用 Object.definedProperty() 方法定义对象的单个属性或更新属性值和元数据。它是 JavaScript 中的Static(静态)方法。
JavaScript 中 Object.definedProperty() 方法的语法如下 -
Object.definedProperty() 方法中的参数如下 -
- obj − 它是要定义或修改属性的对象。
- prop (字符串或符号) − 它是要定义或修改的属性的名称。
- descriptor − 它是一个定义属性属性的对象。
以下示例包含 car 对象的 brand、model 和 price 属性。我们使用 defineProperty() 方法来定义对象中的 'gears' 属性。
输出
JavaScript Object.defineProperties() 方法
JavaScript 中的 Object.defineProperties() 方法是一种Static(静态)方法。,用于定义对象的新属性或修改属性。
JavaScript 中 Object.defineProperties() 方法的语法如下:
Object.defineProperties() 方法中的参数如下 -
- obj − 它是要定义或修改属性的对象。
- prop (字符串或符号) − 它是要定义或修改的属性的名称。
在下面的示例中,我们使用 Object.defineProperties() 方法添加两个名为 property1 和 property2 的 mew 属性。property1 是可写的,property2 是不可写的。
输出
Property2 : qikepu com
JavaScript Object.getOwnPropertyDescriptor() 方法
JavaScript 中的 Object.getOwnPropertyDescriptor() 方法返回对象的特定属性的属性描述符。返回的属性描述符是一个 JavaScript 对象。
例请尝试以下示例 -
输出
descriptor value : 42
JavaScript Object.getOwnPropertyNames() 方法
JavaScript 中的 Object.getOwnPropertyNames() 方法返回一个数组,其中包含在给定对象中找到的所有属性。这包括可枚举和不可枚举的属性。
例在下面的示例中,我们使用 getOwnPropertyNames() 方法来获取所创建对象的属性名称。
输出
JavaScript Object.getPrototypeOf() 方法
JavaScript 中的 Object.getPrototypeOf() 方法返回指定对象的原型。它是在 ES5 中添加的 JavaScript 静态方法。
输出
JavaScrip Object.keys() 方法
javaScript 中的 Object.keys() 方法将对象作为参数,并返回一个包含对象自己的可枚举属性名称的数组。
输出
JavaScript Object.freeze() 方法
JavaScript 中的 Object.freeze() 是封装对象的静态方法。封装的对象无法进一步更改。不能添加新属性,也不能删除现有属性。属性的值无法修改。
输出
JavaScript Object.seal() 方法
Object.seal() 静态方法封装对象。在封装对象中,不能添加新属性,也不能删除任何属性。
输出
JavaScript Object.isFrozen() 方法
如果给定对象被封装,则 JavaScript 中的 Object.isFrozen() 方法返回 true,否则如果对象未封装,则返回 false。
输出
true
JavaScript Object.isSealed() 方法
JavaScript 中的 Object.isSeal() 方法用于检查给定的对象是否被封装。如果对象是封装的,则返回 true,否则它会重新显示。
输出
true
JavaScript Object.preventExtensions() 方法
ES5 Object.preventExtensions() 方法用于防止对象的原型更新。它还会阻止将新属性添加到对象中。
输出
它将产生以下输出 -
JavaScript Object.isExtensible() 方法
JavaScript Object.isExtensible() 方法用于检查对象是否可扩展。它返回 true,表示给定对象是可扩展的,否则将返回 false。如果对象可以添加新属性,则该对象是可扩展的。
输出
false