JavaScript 表达式
JavaScript 字符串 

JavaScript 对象


在 JavaScript 中,对象(Object)是一种复杂的数据类型,用于存储和组织多个值(属性和方法)。对象是由大括号 {} 包裹的数据集合,每个属性或方法都是键值对的形式,其中键(或属性名)是字符串或符号,值可以是任意的数据类型,包括基本类型、对象或函数。


创建对象

在 JavaScript 中,可以通过以下几种方式创建对象:

使用对象字面量:

let person = {
  name: "Alice",
  age: 30,
  greet: function() {
    return "Hello, my name is " + this.name;
  }
};


使用 new Object() 构造函数:

let person = new Object();
person.name = "Alice";
person.age = 30;
person.greet = function() {
  return "Hello, my name is " + this.name;
};


使用构造函数和 new 关键字:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}
let person = new Person("Alice", 30);


访问对象属性和方法

可以使用点号 . 或方括号 [] 访问对象的属性和方法。

console.log(person.name); // 使用点号访问属性,输出 "Alice"
console.log(person["age"]); // 使用方括号访问属性,输出 30
console.log(person.greet()); // 调用对象方法,输出 "Hello, my name is Alice"


内置对象

JavaScript 还提供了一些内置的对象,如 Array、Date、Math 等,它们具有特定的属性和方法,用于执行常见的任务。

let colors = ["red", "green", "blue"];
console.log(colors.length); // 使用数组对象的属性 length,输出 3
let today = new Date();
console.log(today.getMonth()); // 使用 Date 对象的方法 getMonth,输出当前月份(0 表示一月)


原型继承

在 JavaScript 中,对象可以通过原型链继承属性和方法,这是一种基于原型的面向对象编程机制。

function Animal(name) {
  this.name = name;
}
Animal.prototype.sayName = function() {
  return "My name is " + this.name;
};
function Dog(name, breed) {
  Animal.call(this, name);
  this.breed = breed;
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
let myDog = new Dog("Buddy", "Labrador");
console.log(myDog.sayName()); // 继承 Animal 的方法,输出 "My name is Buddy"


注意事项

JavaScript 中的对象是动态的,可以随时添加或删除属性和方法。

对象的属性和方法可以是公共的(默认情况下),也可以是私有的(使用闭包或私有变量)。

使用对象的原型链继承可以有效地共享方法,以节省内存和代码量。

JavaScript 中的对象是非常强大和灵活的,能够处理各种数据和逻辑结构。理解对象的创建、属性访问和原型继承是 JavaScript 编程的重要基础之一。