美文网首页
JS中的prototype、__proto__、construc

JS中的prototype、__proto__、construc

作者: anefish | 来源:发表于2017-10-31 16:02 被阅读0次

从一个例子理清JS中的prototype__proto__constructorObjectFunction的关系:

function Animal(){}

var anim = new Animal()

图片来源:http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html

1. new出来的对象是普通对象,有__proto__属性,但没有prototype属性

2. anim的__proto__属性,指向它的类型Animal的prototype对象

3. Animal是函数对象(function Animal(){}相当于var Animal = new Function()),它有prototype、__proto__属性

4. Animal的__proto__属性指向它的类型Function的prototype对象

5. Animal的prototype(属性指向的)对象(普通对象),包含__proto__、constructor属性,其中constructor即其本身Animal,__proto__指向Object.prototype

6. Function自身是一个函数对象,其prototype和__proto__属性相等,都指向一个函数对象;但这个函数对象比较特殊,它没有prototype属性,其同样包含__proto__、constructor属性。其中constructor即其本身Function,__proto__指向Object.prototype

7. Object自身也是一个函数对象,其__proto__属性指向它的类型Function的prototype属性;它的prototype对象是一个普通对象,其中constructor即其本身Object,__proto__比较特殊是null

相关文章

网友评论

      本文标题:JS中的prototype、__proto__、construc

      本文链接:https://www.haomeiwen.com/subject/lipbpxtx.html