js的面向对象

一、什么是面向对象?
一切(万物)皆对象
简单点说,生活中有一些个物品,譬如说一个iPhone,我们也不知道里面的工作原理吧?但实际应用操作上几天,就会用了。
不需要知道原理就可以用它的功能,就是面向对象。
对象就是一个整体,对外提供一些功能和操作,而你不知道它内部是怎么操作的。在编程中我们叫面向对象。
二、面向对象特点
1、抽象:抽指把核心的东西抽出来,把与我们要解决的问题有关的东西拿出来摆在面前
2、封装:让使用对象的人不考虑内部实现,只考虑功能使用 把内部的代码保护起来,只留出一些个api接口供用户使用
3、继承:就是为了代码的复用,从父类上继承出一些方法和属性,子类也有自己的一些属性
4、多态:实际上是不同对象作用与同一操作产生不同的效果。多态的思想实际上是把“想做什么”和“谁去做“分开
三、对象的组成
1、方法 函数:过程、动态的
2、属性 变量:状态、静态的
四、this 当前的方法属于谁就是谁
this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁
如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window
如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象
如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象
this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的
在严格版中的默认的this不再是window,而是undefined
例如点击事件里的this,其实就是触发事件的那个dom对象的onclick方法里的this,
再比如说一个函数里的this,这个函数都属于window的一个方法,当然里面的this也是window
一般不要在系统对象上面添加属性和方法,不太好,而是在object这个对象身上,别的date呀array呀,这些对象都是有一些个好玩的功能的,
object也就自己最强大的一个功能就是,没有功能~~~~ 这样咱们就可以随意给他加属性和方法而不用去想会不会覆盖了

posted @ 2019-02-18 13:06  入坑的H  阅读(261)  评论(0编辑  收藏  举报