学习总结JS原型&&闭包
一、 一切都是对象
先分析下数据类型
值类型
- undefined
- number
- string
- boolean
引用类型
- 函数
- 数组
- 对象
- null
- new Number()
值类型的类型判断用typeof,引用类型的类型判断用instanceof.
一切(引用类型)都是对象,对象是属性的集合.
二、 函数与对象的关系
对象都是通过函数创建的
三、 prototype原型
每个函数都有一个属性叫做prototype。 这个prototype的属性值是一个对象,默认的只有一个叫做constructor的属性,指向这个函数本身。
|
|
Fn是一个函数,fn对象是从Fn函数new出来的,这样fn对象就可以调用Fn.prototype中的属性。
因为每个对象都有一个隐藏的属性proto,这个属性引用了创建这个对象的函数的prototype。
即fn.(下划线)proto(下划线) === Fn.prototype。
四、 隐式原型
每个对象都有一个proto 称为隐式原型
每个对象都有一个proto属性,指向创建该对象的函数的prototype。
Object.prototype确实一个特例——它的proto指向的是null。
每一个实例也有一个constructor属性,默认调用prototype对象的constructor属性。