对象中prototype与__proto__与从cinstructor的作用和区别

首先先要知道prototype什么时间才会有

只有在创建函数的时候,每当函数创建的时候才会原型prototype,还有一个constructor,这个不是函数独有的,对象也有

下面就来说说对象prototype与__prototype的区别

首先用函数构造器实例化一个对象,注意这里实例化后的obj是没有prototype的,

对象中prototype与__proto__与从cinstructor的作用和区别

 

但是obj有__proto__ 那么我们就来看看obj的__proto__与obj的constructor是什么

对象中prototype与__proto__与从cinstructor的作用和区别

 

对象中prototype与__proto__与从cinstructor的作用和区别

这里明显可以看出obj.__proto__指向的是构造器fun的原型,obj.constructor指向的是函数构造器,也就可以判断这个对象是那个函数构造器的实例化

另外还得出一个结论

对象中prototype与__proto__与从cinstructor的作用和区别

那么再来看看构造器的__proto__与consytuctor,以下的案例可以明显的看出函数构造器fun指向的都是Function

 

对象中prototype与__proto__与从cinstructor的作用和区别

 

 通过以上的案例,下面我们来实现一个小小的继承

对象中prototype与__proto__与从cinstructor的作用和区别

 

首先obj1.__proto__指向的是fun的函数构造器的原型(fun.prototype)

fun.prototype指向的是o这个对象,o的__proto__指向的是Object.prptotype,Object的__proto__指向的是null,因为Object是*的

 

对象中prototype与__proto__与从cinstructor的作用和区别