面向对象
面向对象是一种编程思想,以对象数据类型的基础的编程思想。
有句话说的好,万物皆可为对象。MDN面向对象简介
面向对象的三个特性
- 封装
- 多态
- 继承
面向对象的好处
在不了解原理的情况下,也能使用其功能。
在不了解内部原理的结构体系,但是知道表面的各种操作(冰箱上的各个按钮)。
面向对象的思想
面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式。
面向对象更加强调运用人类在日常生活的逻辑思维中经常采用的思想方法与原则,如抽象、分类,继承、聚合、多态等。
对象是对客观事物的抽象,类是对对象的抽象。
正如人类是一个类,具体的某个人,就是人类的一个具体的对象。
之后,是对象的属性及对象的方法。
例如,人的属性有:姓名,年龄,性别,身高,体重等等;人的方法有吃饭,说话,运动等等。
四个设计模式
单例模式
每一次都要手动新建对象。
调用方法:对象名.属性名
var zs = {
name : "zhangsan",
set:function(){
},
get:function(){
}
}
工厂模式
就是一个 普通函数
代码的冗余;
函数可以实现代码的 高内聚和低耦合
function people(name){
var obj = {
name:name,
...
}
return obj;
}
var p1 = "zhangsan";
...
构造函数模式
创建一个构造函数;通过 new 去创建 这个构造函数(自定义类)的一个实例
这个实例的__proto__属性指向 这个构造函数(自定义类) 的 原型对象
这个原型对象上有一个constructor属性 指向 构造函数本身
所有的实例都是一个对象
所有的类 都是一个函数
function people(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.myself = function(){
console.log(this.name + this.age + this.sex);
}
}
var p1 = new people("zhangsan",18,"男");
p1.myself();
原型模式
利用构造函数以及原型: prototype
原型模式是把所有实例共享的方法和属性放在一个叫做prototype(原型)的属性中,prototype是一个指针,指向对象,通过调用构造函数而创建的实例对象的原型对象。
//构造函数
function people(){}
//原型函数
people.prototype.name = "zhangsan";
people.prototype.sayhi = function(){
console.log("hi");
};
//调用
var p1 = new people();
p1.sayhi();
个人学习成果,如有错误,请及时提醒,大家共同学习。