在前端开发中原型/原型链/原型对象是一个重要的知识点:
下面我说我下我的理解,不对请指出
原型对象 (prototype)
●
定义:每个函数对象都有一个 prototype 属性,指向一个对象,这个对象就是该函数的原型对象。
●
作用:当通过构造函数创建实例时,实例会继承原型对象上的属性和方法。
原型 ([[Prototype]])( 就是实例化出来的 对象)
●
定义:每个对象内部都有一个 [[Prototype]] 内部属性,指向它的原型对象。可以通过__proto__ 访问这个属性。
●
作用:用于查找对象的属性和方法,如果当前对象没有找到某个属性或方法,JavaScript 引擎会沿着原型链向上查找,直到找到为止或到达 null。
原型链 (Prototype Chain)
●
定义:原型链是由多个对象通过 [[Prototype]] 链接起来形成的链条。每个对象的 [[Prototype]] 指向另一个对象,最终指向 null。
●
作用:实现继承机制,子对象可以访问父对象的属性和方法。4
关系总结
原型对象 (prototype) 是构造函数的一个属性,指向一个对象,该对象包含所有实例共享的属性和方法。
○
原型 ([[Prototype]]) 是每个对象内部的一个属性,指向其原型对象。
○
原型链 是由多个对象通过 [[Prototype]] 链接起来形成的链条,实现了继承机制。