目录
一、了解面向对象
面向对象是我们的一种开发方式。
例子:一份烤鸭
在面向过程中:所有事情都是自己来做,要考虑顺序(先杀鸭子,先烤鸭子,还是先切鸭子);要考虑步骤(杀鸭子的时候,先干什么,后干什么);要考虑细节(胡萝卜的宽窄程度,酱的咸甜口等)。而在面向对象中,我们只需要点一份烤鸭,等待烤鸭上桌就好。(会有专门的人来处理这些事情)
1. 面向过程:一种关注过程的开发方式
=> 在开发过程中,我们要关注每一个细节,步骤,顺序。
2. 面向对象:一种面向对象的开发方式
=> 在开发过程中,我们看看有没有一个对象能帮助我们完成任务。
开发过程中的例子:全选(详见之前的文章:JavaScript案例(二):全选;html+css+js实现全选功能_小张小张的博客-CSDN博客)
面向过程:考虑获取哪些元素;考虑给哪些元素绑定点击事件;考虑点击的时候,做什么。
面向对象:考虑有没有一个对象能帮我们完成全选;如果有,那么我们就直接让这个对象帮我完成;如果没有,我们就需要制造这样一个对象来帮我完成。
我们需要这样一个‘机器’:这个机器能给我生产一个对象;生产出来的对象能完成全选功能;我们只要准备好这个机器就可以了;本次开发过程中,我们制造机器,制造好之后,用机器生成一个对象完成全选功能;当你第二次想进行全选功能开发的时候,那么我们就不用再次制造机器了;只要用原先准备的机器,再制造一个新的全选对象就可以了。
我们制造“机器”的过程,就是面向对象封装的过程,面向对象的核心:高内聚,低耦合(就是对面向过程的高度封装)
总结:核心就是找到一个机器,能批量生产对象;
生产出来的对象,每一个对象都有自己的属性和方法;
每一个对象可能类似,但是内容不太一样;可以像函数一样传递参数,可以给每一个对象添加一些不同的内容,利用构造函数去创建一个可以完成任务的对象,依赖这个对象完成功能。
这个机器要生产有属性有方法的合理的对象。(机器:就是构造函数; 属性:直接写在构造函数体内; 方法: 写在构造函数的原型上)
二、创建对象的方式
1. 字面量方式创建对象
var obj = { ... }
//1. 字面量方式创建对象
var obj = {
name: 'jack',
age: 18,
sayHi: function () {console.log('hello world!')}
}
//如果想创建第二个对象
var obj2 = {
name: 'Rose',
age: 20,
sayHi: function () {console.log('hello world!')}
}
重复写同样的方法,name等,不符合批量制造的原则,因此这种方式不经常用。
2. 内置构造函数创建对象
var obj = new Object()
可后期动态添加
//2. 内置构造函数创建对象
var obj = new Object()
obj.name = 'Jack'