介绍
JavaScript 中,对象是 键/值 对的集合。值可以包含属性和方法,并且可以包含所有其他 JavaScript 数据类型,例如字符串,数字和布尔值。
JavaScript中的所有对象都来自父 Object 的构造函数。Object 为我们提供了很多实用的内置方法,并且可以在单个对象中直接使用。不同于 数组的原型方法 例如 sort() 和 reverse() 只能被数组实例使用,对象方法直接来自 Object 构造函数,并使用对象实例作为参数。这称为静态方法。
本教程将介绍重要的内置对象方法,下面的每个部分都涉及特定方法并提供使用示例。
前提
为了充分利用本教程,您应该熟悉创建,修改和使用对象,您可以在“ 了解JavaScript中的对象 ”一文中查看这些对象。
有关JavaScript的其他指导,您可以查看“ JavaScript 如何编码 ”系列。
Object.create()
Object.create() 方法用于创建一个新对象,并将其链接到现有的对象原型。
我们可以创建一个job对象实例,并将其扩展为更具体的对象。
- // Initialize an object with properties and methods
- const job = {
- position: 'cashier',
- type: 'hourly',
- isAvailable: true,
- showDetails() {
- const accepting = this.isAvailable ? 'is accepting applications' : "is not currently accepting applications";
- console.log(`The ${this.position} position is ${this.type} and ${accepting}.`);
- }
- };
- // Use Object.create to pass properties
- const barista = Object.create(job);
- barista.position = "barista";
- barista.showDetails();
- Output
- The barista position is hourly and is accepting applications.
barista 对象现在有一个 position 属性 - 但是所有其他属性和方法都可以通过 job 的原型获得。通过Object.create()来实现最小化重复,对于保持代码DRY十分有效。
Object.keys()
Object.keys() 会创建一个包含对象键的数组。
我们可以创建一个对象并打印键的数组。
- // Initialize an object
- const employees = {
- boss: 'Michael',
- secretary: 'Pam',
- sales: 'Jim',
- accountant: 'Oscar'
- };
- // Get the keys of the object
- const keys = Object.keys(employees);
- console.log(keys);
- Output
- ["boss", "secretary", "sales", "accountant"]
Object.keys() 还可用于迭代对象的键和值。
- // Iterate through the keys
- Object.keys(employees).forEach(key => {
- let value = employees[key];
- console.log(`${key}: ${value}`);
- });
- Output
- boss: Michael
- secretary: Pam
- sales: Jim
- accountant: Oscar
for-in 循环和Object.keys()返回的可枚举属性有一个区别:
for-in 循环同时也会遍历原型属性
Object.keys() 只会返回自有(实例)属性
Object.keys() 对于检查对象的长度也很有用。
- // Get the length of the keys
- const length = Object.keys(employees).length;
- console.log(length);
- Output
- 4
使用该 length 属性,我们能够计算employees包含4个自有属性。
Object.values()
Object.values() 创建一个包含对象值的数组。
- // Initialize an object
- const session = {
- id: 1,
- time: `26-July-2018`,
- device: 'mobile',
- browser: 'Chrome'
- };
- // Get all values of the object
- const values = Object.values(session);
- console.log(values);
- Output
- [1, "26-July-2018", "mobile", "Chrome"]
Object.keys()和Object.values()允许您从对象返回数据。
Object.entries()
(编辑:ASP站长网)
|