1.js本身也是一门面向对象编程语言。
面向:对着;面先对象的编程语言:对着对象(OOP语言)
写程序写代码的时候,所有的操作都是通过对象进行操作。
2.复杂的不是面向对象本身的概念,而是对象,对象是什么?
先想想什么是程序:
对我们现实中的事物的抽象,我们真实的物体是具体,相片是对一个人的抽象
程序是对我们现实事物的抽象,e.g.游戏和平精英是对战争的抽象……网页是平面媒体的抽象
e.g.我想把一个人做成一个游戏的人物,这时候就需要对人进行抽象,那一个具体事物到了程序中是什么:对象
∴一个事物到了程序里就是以对象的形式存在,游戏里的游戏人物、子弹、抢、衣服、皮肤、手雷在程序里都是对象
∴每一个对象在背后都对应着一个实物,每个实物在程序里都对应一个对象,我在程序里想干什么,我只需要找到对应的对象,然后通过对象完成操作
e.g.在js里有window对象,(是对象就有所指代,∴)window对象代表整个浏览器窗口。
所以如果想对浏览器窗口工作,那么我们要找的就是window对象;
同理,document(文档)对象代表整个网页。
如果要对网页对象进行操作,我们要找的就是document对象,
getelementbyid……都是通过document对象进行查询;
同理,如果想要操作控制台,那就要找console对象,
console.log可以向控制台输出日志,console.time可以开启计时器。
通过这些对象操作具体事务,所以面向对象概念:通过对象去操作事物
3.在js中面向对象支持度不算高,在es6才正式有这个概念思想
4.如何将复杂的事物抽象成对象?事物再复杂也就包含两个东西:
1.事物的数据(年龄,身高、性别、体重、爱好……),在对象里称为属性
2.事物的功能(吃、喝、运动、洗衣服……),在对象里称为方法

5.难点在于如何去创建对象、如何去定义对象
