proto 和 prototype

"原型链的重要概念"

Posted by Shiki on May 21, 2018

定义

遵循 ECMAScript 标准,someObject.[[Prototype]] 符号是用于指向 someObject 的原型。从 ECMAScript 6 开始,[[Prototype]] 可以通过 Object.getPrototypeOf()和 Object.setPrototypeOf()访问器来访问。这个等同于 JavaScript 的非标准但许多浏览器实现的属性  proto
但它不应该与构造函数 func 的 prototype 属性相混淆。被构造函数创建的实例对象的 [[prototype]] 指向 func 的 prototype 属性。Object.prototype 属性表示 Object 的原型对象。

随后的时间又进行了一些学习,这个回答让我真正让我明白了 JS 的原型链式怎样的,怎么设计的:
https://www.zhihu.com/question/34183746

理解

在 js 中万物皆对象,Function 是一个比较特殊的对象,他有 prototype ,他的 prototype 其实就是一个拥有 constructor 的对象,如果没有进行修改, prototype 的  proto  就指向 Object.prototype,所以对象的原型链就是通过  proto  建立的,他的顶端就是 Object.prototype.proto  的值 null,这个链上的属性和方法可以供对象使用。
prototype.jpg

在 js 中万物皆对象,Function 是一个比较特殊的对象,他有 prototype ,他的 prototype 其实就是一个拥有 constructor 的对象,如果没有进行修改, prototype 的  proto  就指向 Object.prototype,所以对象的原型链就是通过  proto  建立的,他的顶端就是 Object.prototype.proto  的值 null,这个链上的属性和方法可以供对象使用。