原型对象与原型链

165 阅读1分钟

每个对象都有 __proto__ 属性(隐式原型),但只有函数对象才有 prototype 属性(显式原型),prototype存放所有对象需要共享的属性和方法

__proto__和prototype的关系是:

var 对象 = new 函数( ) 对象.__proto__ === 函数.prototype

每一个对象的 __proto__ 存储这个「公用属性组成的对象」的地址,当调用某种方法或查找某种属性时,首先会在自身调用和查找,如果自身并没有该属性或方法,则会去它的__proto__属性中调用查找,也就是它构造函数的prototype中调用查找


js内存分为steak和heap,除object外的其他六种简单类型都是直接把值存在steak内存里,object是把内容写在heap一个区域内,再将该区域的地址存在steak里

通过 new Function() 创建的对象都是函数对象