javascript原型链是什么_如何理解基于原型的继承机制?

admin 百科 7
JavaScript原型链是对象属性访问的委托查找路径,从自身开始逐级向上查找至Object.prototype后终止于null,本质是动态运行时机制而非类继承。

javascript原型链是什么_如何理解基于原型的继承机制?-第1张图片-佛山资讯网

JavaScript 原型链是对象查找属性和方法时所依赖的一条隐式连接路径,它让对象能“顺着链”向上访问其构造函数的 prototype 对象上的属性和方法。基于原型的继承,不是靠类与类之间的复制或抽象关系,而是靠对象与对象之间**委托访问**——一个对象找不到某个属性时,会自动去它的原型(__proto__)上找,原型找不到再找原型的原型,直到到达 null 为止。

每个对象都有一个 __proto__,指向它的原型对象

这个原型对象通常是其构造函数的 prototype 属性值。比如:

  • let obj = {}obj.__proto__ === Object.prototype
  • let arr = []arr.__proto__ === Array.prototype
  • function Foo() {}let f = new Foo()f.__proto__ === Foo.prototype

注意:__proto__ 是非标准但被广泛支持的属性(现代推荐用 Object.getPrototypeOf(obj) 获取)。

构造函数的 prototype 是实例对象的原型模板

你往 Foo.prototype 上添加方法,所有 new Foo() 创建的实例都能通过原型链访问到:

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

  • Foo.prototype.sayHi = function() { console.log('hi') }
  • f.sayHi() 能执行,因为 f 自身没有 sayHi,就去 f.__proto__(即 Foo.prototype)上找到了

这就是“共享方法、节省内存”的核心机制——不用在每个实例上重复定义相同方法。

标签: javascript es6 java

发布评论 0条评论)

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