js中啥是原型对象和原型链

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中啥是原型对象和原型链相关的知识,希望对你有一定的参考价值。

每个 javascript 对象内部都有一个指向其它对象的“指针”或者 “引用“, 并通过这种方式在对象之间建立了一种联系,形成了一种链式结构,我的理解这就是所谓的原型链。

function F()  // F 是一个函数,函数也是对象,而且每个函数都有一个属性叫:"prototype"
var o = new F(); // F.prototype 就是 o 的原型对象

console.log(o.name);
// 输出: undefined

F.prototype.name = "foo";
console.log(o.name);
// 输出: foo


// 上面这个例子是想说明:通过 new 在对象 o 与对象 F.prototype 之间建立了联系, 这个建立联系
// 的方式有人叫 "原型继承" 。 当访问的对象属性不存在时,就会沿着原型链去查找。

参考技术A 函数的原型对象constructor默认指向函数本身,原型对象除了有原型属性外,为了实现继承,还有一个原型链指针_proto_,该指针指向上一层的原型对象,而上一层的原型对象的结构依然类似,这样利用_proto_一直指向Object的原型对象上,而Object的原型对象用Object._proto_ = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什么所有的javascript对象都具有Object的基本方法。

以上是关于js中啥是原型对象和原型链的主要内容,如果未能解决你的问题,请参考以下文章

彻底理解js的原型链

JS高级---原型和原型链

如何更加简单的理解JS中的原型原型链概念

js 原型和原型链

js原型和原型链

JS高级---原型指向可以改变和原型链