什么是JavaScript中的原型链_它如何实现继承机制?

admin 百科 19
原型链的本质是对象内部[[Prototype]]隐式引用构成的、逐级向上直至null的链式结构。它通过属性查找机制实现继承:先查自身,再沿链向上,直到找到属性或返回undefined,从而共享方法节省内存。

什么是JavaScript中的原型链_它如何实现继承机制?-第1张图片-佛山资讯网

JavaScript中的原型链是对象之间建立继承关系的核心机制,它让一个对象可以访问另一个对象的属性和方法。

原型链的本质是什么?

每个JavaScript对象内部都有一个隐式引用([[Prototype]]),指向它的原型对象。这个原型对象本身也有自己的原型,层层向上,直到最终指向null——这就是原型链。你可以用Object.getPrototypeOf(obj)obj.__proto__(不推荐)查看对象的原型。

函数对象还有prototype属性,它是一个普通对象,会被赋值给该函数创建的实例的[[Prototype]]。例如:

  • function Person() {} 定义后,Person.prototype 就是将来所有new Person()实例的原型
  • const p = new Person()p.[[Prototype]] === Person.prototype
  • Person.prototype.[[Prototype]] === Object.prototypeObject.prototype.[[Prototype]] === null

原型链如何实现继承?

当访问一个对象的属性时,JavaScript引擎会按以下顺序查找:

立即学习“Java免费学习笔记(深入)”;

  • 先在对象自身查找
  • 没找到,就沿着[[Prototype]]链向上查找,依次检查每个原型对象
  • 直到找到该属性,或到达链尾(null)返回undefined

这使得子对象“继承”了原型上的方法和属性,无需复制,节省内存。比如:

标签: javascript es6 java

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~