共计 517 个字符,预计需要花费 2 分钟才能阅读完成。
存在疑难:
- 什么是原型对象?
- 什么是构造函数?
- prototype/__proto__/constructor 都是什么?
寻找答案:
2021/8/11 更新
prototype
存储的是一个援用,援用的是原型对象的地址__proto__
存储的是原型链指针,指向上一层的原型对象,即Child.__proto__ === Parent.prototype
- 构造函数是一个模板,生成实例对象的模板,Person 就是一个构造函数
function Person() {}
Person.prototype = {
constructor: Person,
__proto__: parent.prototype,
// other prototype properties: ...
}
- 函数的原型对象的结构器
constructor
默认指向函数自身 - 原型对象除了自有的原型属性外,为了实现继承,还有一个原型链指针
__proto__
,该指针指向上一层的原型对象 - 上一层的原型对象的构造仍然相似,这样利用
__proto__
始终指向Object
的原型对象上 Object
的原型对象用Object.prototype.__proto__ = null
示意原型链的最顶端- 如此便造成了 javascript 的原型链继承
正文完