JS原型链
首先来说一下JS当中的Fuction和Object
Function和Object的类型都是function
这时有人就感觉很奇怪了,Object怎么可能是function,其实你可以自己打印它的类型试试
其实Object和Function是对象也是函数,因为他们在js当中是很特殊的存在
Function其实就是:
function Function(){[native code]}
Object其实就是:
function Object(){[native code]}
现在来说一说prototype和_ proto _这两个属性:
1.在普通的function当中都有prototype和_ proto _这两个属性
prototype就是function的原型对象,可以理解为他身体里有个对象一样
在普通的对象当中都含有_ proto _这个属性
在Function和Object也有这两个属性
Function.prototype == Function._ proto _ == Object._ proto _ == function(){[native code]}
Object.prototye就是一个普通对象,然而有点特殊的是Object.prototye._ proto _ == null 原型链至此结束
再说一点:
Function.prototype._ proto _ == Function._ proto _ . _ proto _ == Object._ proto _ . _ proto _ == Object.prototye
Function.prototype.prototype == Function._ proto _ .prototype == Object._ proto _ .prototype == undefined