Advertisement

JS原型和__proto__的区别 搞清楚了

阅读量:

理解protopype和__proto__的区别在于一句话:

仅函数Function与对象Object拥有prototype属性这一特性,在其他类型的实例中则并不具备该特征。

而对于那些基于基本数据类型的构造来说,

其对应的实例却拥有__proto__属性,

并且这些基本数据类型及其对应的实例都指向同一个原型对象,

即这些类型被视为相等(因为都指向同一个内存地址)。

这种特性使得在某些编程模式下能够实现统一的行为处理,
而无需为每个具体类型单独编写代码。

我总是听说一个容易引起误解的观点:对象不拥有 prototype 属性,而只有函数才拥有 prototype 属性。

这句话让我感到困惑了很久的时间段,请问原因是什么呢?因为我们经常提到过函数不具备继承功能这一特点吗?所以我认为上面的观点存在不足之处。

证明函数是对象:

复制代码
    console.log(Function instanceof Object)
在这里插入图片描述

在长时间的审核中,我总结出这一论断:仅函数Function和对象Objec

全部评论 (0)

还没有任何评论哟~