__proto__ 和 [[Prototype]] 的区别

proto 和 [[Prototype]] 的区别

  • proto 是 [[Prototype]] 的因历史原因而留下来的 getter/setter
    初学者常犯一个普遍的错误,就是不知道 proto 和 [[Prototype]] 的区别。

  • 请注意,proto 与内部的 [[Prototype]] 不一样。proto 是 [[Prototype]] 的 getter/setter。稍后,我们将看到在什么情况下理解它们很重要,在建立对 JavaScript 语言的理解时,让我们牢记这一点。

  • proto 属性有点过时了。它的存在是出于历史的原因,现代编程语言建议我们应该使用函数 Object.getPrototypeOf({})/Object.setPrototypeOf({}) 来取代 proto 去 get/set 原型。

  • 根据规范,proto 必须仅受浏览器环境的支持。但实际上,包括服务端在内的所有环境都支持它,因此我们使用它是非常安全的。

  • 由于 proto 标记在观感上更加明显,所以我们在后面的示例中将使用它。

posted @ 2022-04-26 18:02  lutwelve  阅读(181)  评论(0编辑  收藏  举报