∵ING 2023-06-04 14:29 采纳率: 82.6%
浏览 11
已结题

这个_proto_为什么不是null?

这个_proto_为什么不是null?Object.prototype._proto_不是等于null吗,为什么这里还是构造函数的原型对象?

img

  • 写回答

1条回答 默认 最新

  • 辞轩. 2023-06-04 17:43
    关注

    以下是来自chatgpt的答案:
    在JavaScript中,Object.prototype是所有对象的最顶层原型对象,它是JavaScript内置的对象类型之一。每个对象都有一个隐藏属性[[Prototype]],指向它的原型对象。当访问对象属性时,如果对象中没有该属性,JavaScript就会沿着该对象的原型链逐层向上查找,直到找到该属性或者在最后一个原型对象中依然找不到该属性为止。

    下面我们来看一下例子:

    function Foo() {};
    console.log(Foo.prototype._proto_); // undefined
    console.log(Foo.prototype.__proto__); // {}
    

    在这个例子中,Foo是一个构造函数,我们可以通过Foo.prototype访问它的原型对象。在原型对象中,存在一个隐藏属性__proto__,指向其父级原型对象,可以通过__proto__属性获取父级原型对象。由于Object.prototype是所有对象的最顶层原型对象,所以在该原型对象中,__proto__属性为null

    相比之下,_proto_属性是非标准的属性,不建议使用,它只存在于某些浏览器中,并且可能会引起兼容性问题。因此,在编写JavaScript代码时,我们应该尽量避免使用_proto_属性,而是使用标准的__proto__属性进行原型链的操作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月3日
  • 已采纳回答 6月25日
  • 创建了问题 6月4日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音