js 对象的_proto_属性 和函数的prototype属性分析

bill是 Employee类型的实例,_proto_指向Employee.prototype

 

Employee.prototype有一个constructor属性,指向Employee函数自身

 

function employee 就是一个函数类型的对象了,有标准的arguments、caller、length(参数个数)、prototype等属性,

它的prototype跟bill._proto_指的是同一个对象。

因为每个对象都有_proto_属性,指向这个对象的创建函数的prototype对象,所以函数对象也有(有点绕,要记住定义一个的函数也是一个对象),

这里function employee的_proto_指向的是一个匿名函数对象,而不是Object类型的对象,或者是Function类型的对象,不知道为啥。

估计是函数定义语法实际是创建了一个匿名函数给函数名?

 

 

展开这个_proto_指向的匿名函数对象,它的constructor属性其实就是指向js标准Function引用类型,

说明是由new Function创建出来的,

 

posted @ 2017-08-21 08:35  老豆芽  阅读(1254)  评论(0编辑  收藏  举报