- JavaScript原型是什么
JavaScript中的每个对象都有一个原型。原型是一个对象,它包含与该对象共享的属性和方法。对象可以通过其原型访问这些属性和方法。当你尝试访问一个对象的属性或方法时,如果对象本身没有该属性或方法,则JavaScript会沿着对象的原型链查找该属性或方法。原型允许您创建具有共享行为的对象,并且在某些情况下可以使代码更加高效。
- JavaScript原型链是什么
在JavaScript中,每个对象都有一个内部属性[[Prototype]],这个属性实际上就是对其原型的引用。如果我们试图访问一个对象不存在的属性或方法,JavaScript 就会从该对象的原型链开始查找,直到找到该属性或方法或者达到原型链的顶端为止。
每个对象的原型又可以是另一个对象,而这个对象同样具有自己的原型,形成了一条原型链。如果我们一直沿着原型链搜索直到找到一个包含该属性的对象,那么这个属性所在的对象的原型链上的所有对象都可以访问该属性。
最终,所有的原型链最终都指向Object.prototype,它是 JavaScript 对象系统中的祖先,并定义了一些核心的属性和方法,如toString()、valueOf()等。
原型链就是由各个对象的[[Prototype]]属性串联而成的一条链,通过该链可以实现属性和方法的继承和共享。