返回

对象方法整理篇——实力进阶

前端

对象方法是 JavaScript 中用来操作对象的重要工具,它允许您对对象进行各种操作,例如获取和设置属性、执行操作等。对象方法可以是内置的,也可以是自定义的。内置的对象方法已经定义在 JavaScript 中,您可以直接使用它们,而自定义的对象方法需要您自己定义。

对象方法的语法如下:

object.method(arguments);

其中,object 是要操作的对象,method 是要调用的方法,arguments 是方法的参数。

1. 对象方法的类型

对象方法可以分为两种类型:

  • 实例方法: 实例方法是属于特定对象的方法,只能在该对象上调用。实例方法的语法如下:
object.method(arguments);

例如,以下代码将调用对象 person 的方法 sayHello():

const person = {
  name: "John",
  sayHello: function() {
    console.log("Hello, my name is " + this.name);
  }
};

person.sayHello(); // 输出: Hello, my name is John
  • 静态方法: 静态方法是不属于任何特定对象的方法,可以在类上直接调用。静态方法的语法如下:
Class.method(arguments);

例如,以下代码将调用类 Person 的静态方法 createPerson():

class Person {
  static createPerson(name) {
    return new Person(name);
  }
}

const person = Person.createPerson("John");

console.log(person.name); // 输出: John

2. 对象方法的用法

对象方法可以用来执行各种操作,例如:

  • 获取和设置属性:您可以使用对象方法来获取和设置对象的属性。例如,以下代码将获取对象 person 的属性 name:
const person = {
  name: "John"
};

const name = person.name;

console.log(name); // 输出: John
  • 执行操作:您可以使用对象方法来执行操作。例如,以下代码将调用对象 person 的方法 sayHello():
const person = {
  name: "John",
  sayHello: function() {
    console.log("Hello, my name is " + this.name);
  }
};

person.sayHello(); // 输出: Hello, my name is John

3. 对象方法的继承

当一个类继承另一个类时,它将继承父类的所有方法。例如,以下代码将定义一个类 Person,该类具有一个方法 sayHello():

class Person {
  sayHello() {
    console.log("Hello, my name is " + this.name);
  }
}

以下代码将定义一个类 Student,该类继承自类 Person:

class Student extends Person {
  constructor(name, school) {
    super(name);
    this.school = school;
  }

  sayHello() {
    console.log("Hello, my name is " + this.name + " and I study at " + this.school);
  }
}

以下代码将创建一个 Student 对象并调用其 sayHello() 方法:

const student = new Student("John", "Harvard University");

student.sayHello(); // 输出: Hello, my name is John and I study at Harvard University

4. 对象方法的封装

对象方法可以用来封装数据和行为。例如,以下代码将定义一个类 Person,该类具有一个私有属性 name 和一个公有方法 sayHello():

class Person {
  #name;

  constructor(name) {
    this.#name = name;
  }

  sayHello() {
    console.log("Hello, my name is " + this.#name);
  }
}

以下代码将创建一个 Person 对象并调用其 sayHello() 方法:

const person = new Person("John");

person.sayHello(); // 输出: Hello, my name is John

在上面的代码中,属性 name 是私有的,这意味着它只能在类 Person 内部访问。方法 sayHello() 是公有的,这意味着它可以在类 Person 的外部访问。

5. 对象方法的多态性

多态性是指同一方法在不同的类中可以有不同的实现。例如,以下代码将定义一个类 Person,该类具有一个方法 sayHello():

class Person {
  sayHello() {
    console.log("Hello, my name is " + this.name);
  }
}

以下代码将定义一个类 Student,该类继承自类 Person:

class Student extends Person {
  constructor(name, school) {
    super(name);
    this.school = school;
  }

  sayHello() {
    console.log("Hello, my name is " + this.name + " and I study at " + this.school);
  }
}

以下代码将创建一个 Person 对象和一个 Student 对象,并调用它们的 sayHello() 方法:

const person = new Person("John");
const student = new Student("Mary", "Harvard University");

person.sayHello(); // 输出: Hello, my name is John
student.sayHello(); // 输出: Hello, my name is Mary and I study at Harvard University

在上面的代码中,方法 sayHello() 在类 Person 和类 Student 中具有不同的实现。这使得我们可以在不同的类中使用相同的