原文链接:https://note.noxussj.top/?source=helloworld
什么是面向对象编程?
面向对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构,也可以理解为是一种编程的思想。面向对象程序设计的核心就是对象和类,对象也是类的实例化,类是对现实对象的抽象。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。在 JavaScript 中处处皆是对象,不像其他编程语言一样,JavaScript 中是没有类的存在,只能通过一系列的方法进行模拟成类。
指导 面向对象就是把现实世界中的事物抽象成程序世界中的类和对象,通过封装、继承、多态来演示事物事件的联系。
对象 Object
对象的成员主要包含属性、方法。
1const person = { 2 name: 'xiaoming', 3 age: 18, 4 eat: () => { 5 console.log('我会吃饭') 6 } 7}
类 Class
类主要包含静态属性、静态方法、实例属性、实例方法。类的命名必须以大写字母开头。
1/** 2 * 定义一个构造函数(类) 3 */ 4function Person() {} 5 6/** 7 * 静态属性 8 */ 9Person.class = 'class1' 10 11/** 12 * 静态方法 13 */ 14Person.study = function () { 15 console.log('我在学习') 16} 17 18/** 19 * 实例属性 20 */ 21Person.prototype.age = 18 22 23/** 24 * 实例方法 25 */ 26Person.prototype.eat = function () { 27 console.log('我会吃饭') 28} 29 30/** 31 * 通过new关键字实例化出一个xiaoming实例 32 * xiaoming继承了Person的age实例属性和eat实例方法 33 */ 34const xiaoming = new Person() 35 36/** 37 * 通过new关键字实例化出一个libai实例 38 * libai继承了Person的age实例属性和eat实例方法 39 */ 40const libai = new Person() 41 42/** 43 * 以上两个实例的成员都是独立的,互不影响 44 */
