一.面向对象与面向过程的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;在面向过程我们前面可能学习到的就是c语言
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向对象非常普遍,像JAVA,C++等等。
二.面向对象(oop)的三大特点
1.封装:将一堆放法或属性放在一起
2.继承:最大限度的重复代码
3.多态:不同类的同名方法
4.抽象:这个特点基本不用,但是有些面试中会给4个空,最后填抽象就好。
三.构造函数与析构函数的区别
构造函数:开辟内存空间。析构函数:释放内存空间
四.创建对象
1. 使用Object :var obj=new Object();
2.json创建 :var obj={};
3.工厂模式:function createPerson(name,qq){
var obj=new Object();
}
4.构造函数创建对象(推荐):function Dog(name,age){
this.name=name;
this.age=age;}
var a =new Dog('金毛',2);
五.原型prototype
1.原型是该类的公共存储空间,用于节省内存。
2.原型本质是一个对象,可以设置任意属性。Dog.prototype.skill=function(){
console.log('拆家’)};
3.object的原型是null,原型按照_proto_属性进行向上查找。
4.原型链:当访问对象的属性或方法时,现在自己的构造函数中寻找,如果没有,就在自己的原型中寻找,如果还没有,就在原型的原型中寻找,一直到Object的原型,这样形成的一个链称之为原型链
六.继承
1.公共的参数可以继承。使用call或者apply方式实现构造函数的继承,这样可以改变this指向。例如:Dog.call(this,name,age)/Dog.apply(this,[name,age])
2.继承的目的:找到共性,精简代码,提高重用性
七.MVC
1.什么是MVC:model view control 是一种设计理念,将代码进行逻辑分离,分离成控制层,试图层及数据层三层。
2.MVC的作用:降低了耦合度,提高了代码的拓展性,易修改性。
下面看一下仿微信朋友圈的案例:
使用了MVC,分别进行了model.js view.js,使结构更加清晰,当我们有后台传入许多数据,不会每个都进行去修改,只需要在函数中改一处即可,这就是MVC的好处。