propotype是什么
- prototype只有函数才会有的属性
- prototype是一个指针,指向一个对象(这个对象的用途就是包含所有实例共享的属性和方法),即原型对象
- 原型对象上都有constructor属性,它指向prototype所属的函数。
- Note:通过Function.prototype.bind方法构造出来的函数是个例外,它没有prototype属性。
__proto__是什么
- 每个实例都有__proto__,它指向构造函数的原型对象。
可以看到一个函数的prototype打印出来,constructor刚刚解释了,是指向prototype所属的函数的,即foo,但__proto__不是应该实例对象才有吗。
在javascript中,万物基于Object,即函数也是Object的一个实例,所以foo中的__proto__指向的是Object的原型对象。
网友评论