写在前面:如果此篇博客中有任何错误的地方,欢迎大家的指正!让我们共同进步! 如果觉得这篇博客有用就点赞+收藏+关注三连吧!
记录一下今天所学JS原型链的重点知识。
①Object是最开始就在内存中存在的,早已分配内存。 ②由于这里Fn2函数对象prototype是一个引用,因此会指向一个Object的实例化对象,而这个对象早已存在,因此用0x345中的prototype来初始化Ojbect空对象。
特例: Function的隐式原型属性和显式原型属性实质上是指向的同一个对象,即Function = new Function(); 因此所有函数的__proto__都是一样的(都是通过new Function()创建的)。
类似Fun.prototype也是指向的空OBject对象(即Object.prototype)
理解记忆重点如下:
原型链中的属性问题 查找变量若找不到,会报错; 查找对象属性如果找不到,会返回undefiend。
总结: 函数对象其实是Function的实例,因此每一个函数都有一个__proto__属性(其就是Function.prototype),进而每个函数至少拥有prototype、proto、constructor三个属性,且所有函数的__proto__都相同(new Function()产生)。
构造函数/原型/实例对象的关系 有关于这三者关系的视频分享 30分钟开始