一.对象的含义:对象是带有属性和方法的一种特殊数据类型。在js中,由于没有java这类面向对象语言的“类”的概念,所以任意函数都可以被实例化为一个对象,也即是万物皆对象。
二.面向对象的含义:对象是一个整体,不关注内部,只在乎其提供的功能:举个例子:就像是遥控器,我们使用时其实并不需要了解它内部的电路构造以及所编写的指令,只需要知道每个按键对应的功能,像是音量键可以设置音量大小,这就是这个按键对应的方法,而不同 的按键又有自己的形状以及大小,这就是每个按键的属性。面向对象是一种编程思想,相对于面向过程,其优点就在于简化了代码,提高了程序的性能。
三.面向对象的特点:(抽风机)
1.抽象:只关注特定的核心要点,即构造方法时,我们只关注那些需要用到的元属性,毕竟买遥控器时,我们可不会在意它有多少个零件,是什么材质。
2.封装:不考虑如何实现,只考虑提供的功能如何使用。(⊙﹏⊙)还拿遥控器来说,就是要晓得把遥控器对准,再按下对应的按键,而不用去想信号是怎么传输的。
3.继承:从已有的对象基础上,构建出新的对象,新对象不仅拥有原有对象的方法,还有自己新增的方法;遥控器说什么也不干了,这里我们换个说法:原有对象是父亲,新对象是儿子,儿子从父亲那里继承了全部财产,但儿子并不满足,自己定了个小目标:挣他一个亿,然后做到了,这就是儿子自己的财产,所以儿子现在的总财产就是父亲的所有财产+自己的财产。
最后来说一下我个人对一个问题的理解:js是否是面向对象的语言?
在网上我查阅了一些资料以及博客,有说是面向对象的,有说是基于对象的,我个人比较赞同后一个观点:最关键的一点就在于js没有类概念,js的继承是通过原型链来实现的,是通过原型继承来模拟继承的效果,虽说实现了类的效果,但依然存在不小的差异,与面向对象的还是有明显的区别的。
个人的初步理解,如有不足以及错误,请各位大神不吝赐教!!!