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都指向对象

 

 

 



 

posted @ 2019-08-15 20:07  李佳琪  阅读(150)  评论(0)    收藏  举报