面向对象编程思想
一、面相过程:注重解决问题的步骤,分析问题需要的每一步,实现函数依次调用;
二、面相对象:是一种程序设计思想。将数据和处理数据的程序封装到对象中;
三、面相对象特性: 抽象、 继承、封装、多态
优点:提高代码的复用性及可维护性;
Javascript 是一种基于对象的语言,几乎所有东西都是对象;
对象创建方法:
1- 字面量创建(比构造函数创建性能好)
2- new Object()构造函数创建
3- Object.create()创建:创建对象的原型;
对象的调用
new运算符
new的特点:
1.new能执行函数
2.自动创建空对象;
3.this绑定到空对象;
4 隐式返还this;
通过new来改造工厂模式
构造函数
- 构造函数要通过new来调用,this指向Student
- 约定俗成构造函数首字母大写
构造函数性能
公共空间存放公共方法 prototype ,更节约内存
构造函数原型
prototype和constructor
prototype固有属性 constructor--->Person;
Person.prototype.constructor === Person
prototype原型
- 通过new实例化出来的对象其属性和行为来自两个部分,一部分来自构造函数,另一部分来自原型。
- 当声明一个函数的时候,同时也申明了一个原型 。
- 原型本身是一个对象。
- 对象属性方法查找规则;
静态属性及方法
- 静态方法里的this;
- 扩展功能;
工厂模式对比构造函数
1.但是却没有解决对象识别的问题。即创建的所有实例都是Object类型。(不清楚是哪个对象的实例)
2.工厂模式没有原型,占用内存
工厂模式(了解就可以,推荐用构造函数)
工厂模式解决了代码复用的问题;
对象和类
一、对象:具体的某个事物;(如:小明、叮当猫)
二、类:一类事物的抽象;(如:人类、猫类)