经验笔记:JavaScript 中的对象

JavaScript 中的对象经验笔记

引言

JavaScript 中的对象是核心数据结构之一,它支持键值对的形式来存储数据,并且可以包含函数(称为方法)。对象是面向对象编程的基础,同时也是实现复杂数据结构的关键。本文将详细介绍如何在 JavaScript 中创建、操作和使用对象。

创建对象

使用对象字面量

对象字面量是最简单的方式,可以直接在代码中定义一个对象:

let person = {
  name: 'Alice',
  age: 30,
  greet: function() {
    console.log(`Hello, my name is ${this.name}`);
  }
};

person.greet();  // 输出: Hello, my name is Alice

使用构造函数

构造函数是一种创建对象的传统方式,使用 new 关键字:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.greet = function() {
  console.log(`Hello, my name is ${this.name}`);
};

let person = new Person('Alice', 30);
person.greet();  // 输出: Hello, my name is Alice

使用 class 语法(ES6+)

ES6 引入了更现代的类语法,使得面向对象编程更加直观:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

let person = new Person('Alice', 30);
person.greet();  // 输出: Hello, my name is Alice

访问对象属性

对象的属性可以通过点表示法或括号表示法来访问:

console.log(person.name);  // 'Alice'
console.log(person['age']);  // 30

修改对象属性

同样地,可以通过点表示法或括号表示法来修改对象的属性:

person.age = 31

添加方法

可以在对象上添加方法,这些方法通常是函数,用于执行某些操作:

person.greet = function() {
  console.log(`Hi there! I'm ${this.name}.`);
};
person.greet();  // 'Hi there! I'm Alicia.'

遍历对象的属性

可以使用for...in循环来遍历对象的所有可枚举属性:

for (let prop in person) {
  if (person.hasOwnProperty(prop)) {
    console.log(`${prop}: ${person[prop]}`);
  }
}

使用Object.keys(), Object.values(), Object.entries()

ES6 引入了几个实用工具方法来操作对象:

console.log(Object.keys(person));  // ['name', 'age', 'greet']
console.log(Object.values(person));  // ['Alicia', 31, [Function: greet]]
console.log(Object.entries(person));  // [['name', 'Alicia'], ['age', 31], ['greet', [Function: greet]]]

对象的继承和原型链

对象可以通过原型链来实现继承,即一个对象可以继承另一个对象的属性和方法:

let person2 = Object.create(person);
person2.name = 'Bob';
person2.greet();  // 'Hi there! I'm Bob.'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值