对象方法整理篇——实力进阶
2023-10-25 04:49:30
对象方法是 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 中具有不同的实现。这使得我们可以在不同的类中使用相同的