原型链是 JavaScript 中实现对象之间继承关系的一种机制。在 JavaScript 中,每个对象都有一个指向另一个对象的链接,这个链接被称为原型。当试图访问一个对象的属性或方法时,如果该对象本身没有这个属性或方法,JavaScript 就会沿着这个原型链向上查找,直到找到对应的属性或方法或者到达原型链的顶端(即 Object.prototype
)。
原型链实际上是一系列对象之间的连接,每个对象都有一个指向它的原型对象的引用。通过这种链式连接,对象可以从其原型对象继承属性和方法。如果在当前对象上没有找到所需的属性或方法,JavaScript 引擎会沿着原型链向上查找,直到找到为止。
在 JavaScript 中,每个对象都有一个内部属性 [[Prototype]]
(可以通过 __proto__
或 Object.getPrototypeOf()
访问),它指向该对象的原型。当需要访问一个对象的属性或方法时,如果当前对象没有这个属性或方法,JavaScript 引擎会沿着原型链逐级向上查找,直到找到为止。
通过原型链,可以实现对象之间的继承关系,子对象可以继承父对象的属性和方法。这种机制使得 JavaScript 中的对象具有灵活的属性查找和继承特性,同时也有助于节省内存和提高代码的复用性。
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title>原型链</title>
</head>
<body>
<script>function Humans(){this.foot=2;}Humans.prototype.getFoot=function(){return this.foot;}function Man(){this.head=1;}Man.prototype=new Humans();Man.prototype.getHead=function(){return this.head;}var man1=new Man();alert(man1.getFoot());alert(man1.getHead());alert(man1 instanceof Object);alert(man1 instanceof Humans);alert(man1 instanceof Man);
</script>
</body>
</html>