谈谈对prototype和__proto__的理解

2018-09-25  本文已影响0人  noobakong

谈谈对prototype__proto__的理解

之前初学JavaScript的时候,被这两个东西搞得迷迷糊糊的,前两天看JS高程的时候,看到了prototype,自己好好的总结了一下

1. 构造函数,原型对象,实例

构造函数的原型属性 prototype指向了原型对象,在原型对象有的属性和方法,构造函数构造出的实例都可以继承共享,不是很恰当的说,如果构造函数是实例的爹,那么原型对象就是构造函数的爹,也就是实例爹的爹,爷爷。

构造函数是函数

原型对象的对象

实例也是是对象

以下列代码为例:

function Foo () {}
foo = new Foo ()

上面代码创造了一个构造函数,并new了一个Foo的实例foo,我们可以在控制台打印下面代码

js-原型2.png

可以很明显看到,Foo构造函数是一个function,而foo实例和Foo.prototype原型对象都是对象

2. 关系示意图

js-原型1.jpg

3. 详解

prototype 是属于一个函数特有的属性,而 __proto__一般存在于对象之中

4. 总结

上一篇 下一篇

猜你喜欢

热点阅读