面向对象和面向过程
在用面向对象的思想规整代码之前,所有js代码都写成一堆,那个是面向过程(代码堆在一起,靠注释区分)
面向对象可以理解成,是过程式代码的高度封装,目的在于提高代码的可维护性和开发效率。
理解一下对象:具有某特征或某方法的某个事物(其特征就是属性,其行为就是方法)
三种创建对象的方式:
1.字面量的方式
2.调用系统的构造函数
3.自定义构造函数的方式
//字面量方式创建对象 let per1={ name:'小白', age:10, say:function(){ return 'hello' } } //调用系统的构造函数创建对象 let per2=new Object() per2.name='小黄' per2.age=8 per2.eat=function(){ return'eat something' } //自定义构造函数创建对象 function Per3(name,age){ this.name=name this.age=age this.play=function(){ return 'play gemes' } } let per3=new Per3('小黄',10) //工厂模式创建对象 function creatObject(name,age){ let obj=new Object() obj.name=name obj.age=age obj.say=function(){ console.log('hello') } return obj } let per4=creatObject('小白',10)
面向对象编程——Object Oriented Programming——OOP
js可以模拟面向对象
面向对象特性:封装、继承、多态、抽象
封装:代码重用
继承:关键概念——类,指类与类之间的关系,js中没有类的概念,有构造函数的概念,基于原型,可以继承,通过构造函数模拟类的概念。
多态:一个对象有不同的行为,或,同一行为,针对不同的对象,产生不同的效果
面向对象的设计思想是:
-
抽象出 Class
-
根据 Class 创建 Instance
-
指挥 Instance 得结果
总结:
面向对象就是,根据需求,分析对象,找到对象有什么特征和行为,通过创建对象(构造函数创建对象),对象调用属性和方法来实现需求。