JavaScript中的每个对象都有一个关联的原型对象,该对象定义了该对象的属性和方法。这个原型对象又有自己的原型对象,依此类推形成原型链。当我们试着访问一个对象的属性时,如果该对象不存在该属性,JavaScript会在原型链中的原型对象中查找该属性。
例如,当我们访问一个对象的方法时,JavaScript会首先查找该对象本身的属性和方法,然后在它的原型对象中查找,接着是原型对象的原型对象,以此类推,直到找到该方法或者原型链的末端为止。
在JavaScript中,原型对象可以通过构造函数的prototype属性来访问和修改。当我们使用new关键字创建一个对象时,JavaScript会将该对象的__proto__属性指向其构造函数的原型对象,这样就建立了该对象与原型链之间的联系。
可以通过对象的__proto__属性来访问和修改原型对象,但并不推荐使用该方法,因为它是非标准的。相反,推荐使用ES6中的Object.getPrototypeOf()和Object.setPrototypeOf()方法来访问和修改原型对象。