JavaScript面向对象
JavaScript面向对象
什么是对象?
多个数据的封装体,用来保存多个数据的容器
一个对象代表现实中的一个事物
为什么要用对象?
统一管理多个数据
对象的组成:
属性 属性名(字符串)和属性值组成
方法 一种特别的属性(属性值是函数)
如何访问对象内部数据?
.属性名 编码简单 有时不能用
['属性名' ] 编码麻烦 能通用
面向对象有三大特点 :封装 继承 多态
封装:把所有相关的属性和方法封装在一个对象里。
继承:自己没有的属性或者方法,把别人的拿来用。
多态:不同的对象根据事件情况,执行代码不同。
js可以模拟实现。arguments。
原型链
***原型链:由各级对象的__proto__逐级继承形成的关系
原型链的作用也是节省空间。
实现:
建立一个基础对象的构造函数,再建立一个继承对象的构造函数,
然后用prototype实现对象的继承。
Prototype和__proto__
1,prototype是类的或者函数的,__proto__是对象的
2,prototype是存储机制,程序员来实现,__proto__是查找机制,(是浏览器的)
Zhangsan.name
zhangsan这个对象首先看name是私有的,是就直接使用,不是就通过__proto__往它的类的prototype上查找,有就直接使用,没有就继续向上查找,直到查找到基类object,没有就是undefined,有就直接使用。这种查找机制叫原型链。
在js面向对象中this指向的问题
1.函数调用的时候看函数前面有没有. 有. 前面是谁this就指向谁,没有.就指向window
2.构造函数中的this都指向实例对象
3.定时器中的this都指向对象


浙公网安备 33010602011771号