1、面向过程和面向对象(ProcedureOriented):关注过程,强调事件的流动和先后顺序。面向对象:以对象为核心,强调事件的作用和主体。举个简单的例子——把大象放进冰箱:面向过程:按照步骤(过程)编程打开冰箱,把大象放进去,关上冰箱。面向对象首先确定两个对象,大象和冰箱。然后确定它们的功能:大象——把东西放进冰箱——打开、关闭最后调用这两个对象的功能来实现。从效果上看:面向过程性能高,不易维护。适用于简单的系统。面向对象,易维护,易复用,易扩展,更灵活。性能低于面向过程,更适合复杂系统。2.类和对象类:抽象对象的公共部分(属性和方法)。对象:具体的事物。通过类实例化具体对象。比如平常的狗(会叫会咬人)就是一个类。你的狗是二哈,你的狗是具体对象。二哈有狗的属性(会叫会咬人),也有自己的一些属性(睡觉会打呼噜)。面向对象的三大特点:封装、继承和多态。封装:将公共部分进行封装,比如封装成类。继承:子类可以继承父类的属性和方法。多态性:同一个操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。例如:你的狗会叫,我的狗会呜呜叫。他们都吠叫,但行为不同。3.ES6类代码实现classPerson{constructor(name,age){this.name=name;这个。年龄=年龄;}say(){console.log(`我叫${this.name},今年${this.age}岁`);}}constjack=newPerson('Jack',18);jack.say();//我叫杰克,今年18岁//子类继承父类StudentextendsPerson{}constjim=newStudent('Jim',19);jim.say();//我叫吉姆,今年19岁。方法调用优先级:在继承中,如果子类有方法,首先调用子类的类,子类不再调用父类。4、super关键字在子类中,super关键字可以用来调用父类的方法。super()调用父类的构造函数,super.say()调用父类的普通函数。需要注意的是,super必须在子类this之前被调用。例如:classStudentextendsPerson{constructor(name,age,score){this.score=score;//正确的写法应该把super调用放在这句话之前super(name,age);}说(){超级。说();console.log(`我通过了${this.score}`);}}constjim=newStudent('Jim',19,100);吉姆说();会报错:5。需要注意的是,点类中的常用属性和方法必须和this一起使用。构造函数中的this指向当前实例对象。类中方法中的this指向该方法的调用者(或当前实例对象)。参考资料:传智教育-JavaScript进阶面向对象ES6面向过程与面向对象的区别本文由mdnice多平台发布
