📜  oop js 是 - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:17.656000             🧑  作者: Mango

OOP JS 是 - JavaScript

JavaScript 是一种面向对象编程语言(OOP)。 JavaScript 中的对象支持继承和多态性,允许您使用常见的 OOP 概念(例如封装、抽象和多态性)来设计和实现代码。

封装

封装是 OOP 中的一个关键概念,JavaScript 通过使用对象和闭包来实现封装。通过将数据(属性)和操作(方法)打包到对象中,我们可以隐藏实现详细信息并与对象进行交互,而不必直接访问变量或函数。

以下是一个简单的 JavaScript 对象,它封装了名称和年龄属性:

var person = {
  name: "John",
  age: 20,
  getDetails: function() {
    return this.name + " is " + this.age + " years old.";
  }
};

我们可以通过这样调用 person 对象上的 getDetails 方法:

console.log(person.getDetails()); // prints "John is 20 years old."
继承

继承允许我们从已有的对象建立新的对象,并可以重用已有对象中的数据和行为。JavaScript 使用原型继承,每个对象都有一个指向其原型的链接,可以从原型对象中继承属性和方法。

以下是一个基于 person 对象的派生对象 employee

var employee = Object.create(person);
employee.salary = 50000;
employee.getDetails = function() {
  return this.name + " is a " + this.salary + " dollar earner.";
};

console.log(employee.getDetails()); // prints "John is a 50000 dollar earner."
多态性

多态性是指多个对象可以对同一个消息做出不同的响应。在 JavaScript 中,可以通过函数重载和统一标识符等方式实现多态性。

以下是一个使用统一标识符实现多态性的示例,其中两个不同的对象都使用名为 doSomething 的方法:

var obj1 = {
  doSomething: function() {
    console.log("Object 1 is doing something.");
  }
};

var obj2 = {
  doSomething: function() {
    console.log("Object 2 is doing something else.");
  }
};

function executeFunction(obj) {
  obj.doSomething();
}

executeFunction(obj1); // prints "Object 1 is doing something."
executeFunction(obj2); // prints "Object 2 is doing something else."
结论

JavaScript 是一种面向对象编程语言,具有封装、继承和多态性等概念。JavaScript 中的对象可以实现 OOP 中的常见概念,并且可以通过原型继承和函数重载等方式实现多态性。