看完王福鹏原型闭包观后感(一)
2018-07-03 本文已影响0人
神话降临
js数据类型
基本类型: boolean string number undefind
引用类型: 对象 函数 null 数组
typeof 验证数据类型 引用类型一律得出object的结果 typeof null 会输出object
instanceof 主要用来验证数据类型是不是对象 xxx instanceof Object
对象
引用类型都是对象,对象是属性的集合
对象都是通过函数创建的(function Object(){}),但是函数也是一种对象
每个函数都有一个原型链prototype属性,这个属性的值也是一个对象,这个对象有一个默认的属性叫constructor指向该函数
而且有意思的是 每个对象都有一个原型访问器指向创建该对象函数的原型(prototype)
这个话有点绕 举个例子
var obj = new Object()
obj.__proto__ === Object.prototype
Object.prototype也是一个对象他的proto指向null
函数都是被function Function(){}创建的,而funtion Function是被自己创建的,所以他的__proto __指向自己的prototype
记住四点帮你理解原型链
1.对象的__proto __指向创建该对象函数的prototype
2.函数都是被function Function(){}创建的(当然包括function Object(){}),而funtion Function是被自己创建的
3.对象是被function Object创建的 Object.prototype.__proto __ 指向null
4.函数的prototype.__proto __ 都指向Object.prototype
再补充一点 每个函数.prototype.constructor 指向函数本身,打印出来的就是当前函数
[原型链图]
image.png