在js中,每个函数都有一个prototype属性,它默认指向一个object空对象,这个object空对象也叫原型对象。在这个原型对象中,有一个属性叫做constructor,它指向函数对象。那么,怎么理解这句话呢。
比如我们现在输出这样一句话:
现在来看控制台输出结果:
它返回的是一个Object,并且这个Object中有各种方法和constructor(因为JS中已经为将Date函数写好了)。但是这个Object是有方法的。但如果我们自己写一个函数,如下:
它的输出结果就是:
此时,你就会发现,这个Object对象里是什么都没有的。假设现在我们往fun函数的prototype中添加一个test方法,如下:
在来看此时的输出结果:
那么,此时prototype中就有了test方法。
怎样理解prototype中的constructor,constructor指向了函数对象,这句话的意思就是如下:
为了更好的理解这句话:我们这样写一段代码:
这个输出的结果是true,说明constructor指向了函数对象