每个对象都有 proto 属性****(隐式原型)****,但只有函数对象才有 prototype 属性****(显式原型),prototype存放****所有对象需要共享的属性和方法
proto和prototype的关系是:
var 对象 = new 函数( ) 对象.__proto__ === 函数.prototype
每一个对象的 proto 存储这个「公用属性组成的对象」的地址,当调用某种方法或查找某种属性时,首先会在自身调用和查找,如果自身并没有该属性或方法,则会去它的proto属性中调用查找,也就是它构造函数的prototype中调用查找
js内存分为steak和heap,除object外的其他六种简单类型都是直接把值存在steak内存里,object是把内容写在heap一个区域内,再将该区域的地址存在steak里
通过 new Function() 创建的对象都是函数对象
image
网友评论