隐式原型和显式原型有哪些
时间: 2024-04-19 11:16:29 浏览: 180
02_显式原型与隐式原型.html
在JavaScript中,每个对象都有一个隐式原型和一个显式原型。
1. 隐式原型(__proto__):每个JavaScript对象都有一个指向它的原型对象的内部链接,称为隐式原型或 __proto__,它定义了对象的属性和方法的访问方式。当查找一个对象自身没有的属性或方法时,会沿着这个对象的 __proto__ 链一直向上查找,直到找到该属性或方法或者到达原型链的顶端(Object.prototype)。
2. 显式原型(prototype):每个函数都有一个特殊的属性 prototype,它是一个对象,包含了由该构造函数创建的所有实例共享的属性和方法。当一个函数被用作构造函数时,它所创建的对象的 __proto__ 属性会指向该构造函数的 prototype 属性。因此,通过修改构造函数的 prototype 属性,可以添加新的属性和方法,从而影响到由该构造函数创建的所有实例。
需要注意的是,隐式原型和显式原型是两个不同的概念,它们之间并没有直接的关系。每个对象只有一个隐式原型,而每个函数都有一个 prototype 属性。因此,只有函数才有显式原型,而普通对象没有显式原型。
阅读全文