【javascript】再读prototype和__proto__

前端之家收集整理的这篇文章主要介绍了【javascript】再读prototype和__proto__前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

prototype显示原型,__proto__是隐式原型

prototype

prototype 对象是存放继承特征的地方,由于javascript没有提供一种方法去确定哪个函数时打算用来做构造函数的,所以每个 函数 (划重点是函数对象) 都会得到一个 prototype 对象。这一点要排除用 Function.prototype.bind() 方法构造出来的函数,这是个例外,他没有prototype 属性

进一步解释:prototype属性是一个指针,指向一个对象,这个对象的用途是包含所有实例共享的属性方法(我们把这个对象叫原型对象)。原型对象又有一个属性,叫做 constructor,这个属性包含了一个指针,指回原构造函数

 原型对象
原型对象 HAS constructor 
constructor ----> Foo()

prototype作用
(1)实现实例间的属性共享
(2)实现基于原型继承

proto

现代浏览器把对象内部属性 [[Prototype]]proto 的形式暴露出来。几乎任何对象都有一个 [[Prototype]] 属性,在标准中这是一个隐藏属性。该属性指向的是这个对象的原型

new的执行过程

var obj = new Foo()

实例和构造函数之间是没有直接关系的

猜你在找的JavaScript相关文章