📜  JavaScript 中的面向对象编程简介(1)

📅  最后修改于: 2023-12-03 14:42:30.645000             🧑  作者: Mango

JavaScript中的面向对象编程简介

JavaScript是一种基于对象的编程语言,因此具有很强的面向对象特性。本文将简要介绍JavaScript中的面向对象编程。

对象

在JavaScript中,对象是一种无序属性的集合,可以理解为一个容器,可以存储各种数据。一个对象可以包含任意数量的属性。属性值可以是简单值、对象或者函数。

对象的创建方式

  • 对象字面量

    对象字面量是最简单的创建对象的方式,可以在大括号中使用逗号分隔不同的属性。

    let person = {
      name: 'Tom',
      age: 18,
      gender: 'male'
    };
    
  • 构造函数

    可以通过构造函数来创建对象,可以使用new关键字来调用构造函数并创建一个新的对象。

    function Person(name, age, gender) {
      this.name = name;
      this.age = age;
      this.gender = gender;
      this.sayHi = function() {
        console.log('Hi! My name is ' + this.name);
      };
    }
    let person = new Person('Tom', 18, 'male');
    
面向对象编程的特性

JavaScript支持面向对象编程的三大特性:封装、继承和多态。

封装

封装是通过将数据和方法包装在一个对象中来实现的。封装可以实现隐藏对象内部的具体实现,只暴露必要的接口,从而保证了对象的安全性和稳定性。

继承

继承是指一个对象(子类)从另一个对象(父类)继承属性和方法的过程。JavaScript中使用原型链实现继承。子类继承父类之后,可以将父类的属性和方法继承下来并进行重写和扩展。

function Animal(name) {
  this.name = name;
}
Animal.prototype.sayHi = function() {
  console.log('Hi, I am ' + this.name);
};

function Cat(name) {
  Animal.call(this, name);
}
Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;
Cat.prototype.sayHi = function() {
  console.log('Hi, I am a cat, my name is ' + this.name);
};
let cat = new Cat('Kiki');
cat.sayHi(); // Hi, I am a cat, my name is Kiki

多态

多态是指同一操作作用于不同的对象,可以产生不同的结果。JavaScript中通过函数重载和函数覆盖实现多态。

总结

JavaScript中的面向对象编程具有封装、继承和多态三大特性,这些特性使得JavaScript的面向对象编程具有更加灵活的编程方式。开发者可以充分利用这些特性实现复杂的应用程序。