包装对象
JS基于原型的程序
基本类型都有自己的包装对象:
String Number Boolean
|
|
原型链
实例对象与原型之间的连接,叫做原型链
proto( 隐式连接 )
Object对象类型是原型链的最外层
|
|
面向对象的一些属性和方法
hasOwnProperty() : 看是不是对象自身下面的属性,在最外层Object下
constructor : 查看对象的构造函数
|
|
constructor 需要注意到的地方
可用来判断是否为数组 ‘arr.constructor == Array’
每个原型都会自动添加constructor属性
For in 的时候有些属性是找不到的
避免修改construtor属性
|
|
instanceof : 运算符
判断对象与构造函数在原型链上是否有关系
可以做类型判断 arr instanceof Array
toString() : 系统对象下面都是自带的 , 自己写的对象都是通过原型链找object下面的
有以下几种应用
- 把对象转成字符串
|
|
- 进制转换
|
|
- 类型判断(一般都用这种方法判断是否为数组)
|
|
三种判断数组的方法
|
|
什么是继承
子类不影响父类,子类可以继承父类的一些功能 (代码复用 )
属性的继承 : 调用父类的构造函数 call
方法的继承 : 把父类原型赋给子类原型(不靠谱)
|
|
方法的继承 :
for in : 拷贝继承 (jquery也是采用拷贝继承extend)
|
|
继承的其他形式
类式继承
利用构造函数(类)继承的方式
|
|
原型继承
借助原型来实现对象继承对象
|
|
三个继承方式的区别
拷贝继承: 通用型的 有new或无new的时候都可以
类式继承: new构造函数
原型继承: 无new的对象