【问题标题】:What is the __proto__ value of an object that is being created by constructor构造函数创建的对象的 __proto__ 值是多少
【发布时间】:2021-01-01 22:57:30
【问题描述】:

我知道网上或书籍中似乎有很多关于我的问题的参考资料,但请相信我,如果我问这意味着在阅读书籍/观看视频后我很困惑。所以请尝试帮助而不判断:) 我有以下代码:

  const Person = function (firstName, birthYear) {
  // Instance properties
  this.firstName = firstName;
  this.birthYear = birthYear;

我正在创建一个 Person 对象:

let p = new Person('Mike',35)

然后,当将 p 打印到控制台时,会看到 proto 属性来自 Object 类型而不是 Person 类型。是我看错了还是我不懂原型理论?

我的小姐可能因为我看到的一个讲座而感到困惑:

【问题讨论】:

    标签: javascript prototype


    【解决方案1】:

    __proto__ 在这种情况下指向 Person.prototype

    编辑:啊,我终于明白你在问什么了,你在用另一种有“类型”的编程语言思考。你在 JS 中看到,函数是一个对象。没有课。您创建的每个对象都将是“对象”类型。

    【讨论】:

    • 您能否详细说明这意味着什么以及我将如何使用Person.prototype
    • @ravenchaser,那为什么截图显示object?顺便说一句,我不是拒绝你答案的人,因为我真的不知道正确答案
    • 好的,所以我的理解是 __proto__ 是原型对象的“getter”。因此,无论何时创建对象,在本例中为 Person,也会创建原型,它继承了 Object 的所有属性。也许有人可以更好地解释这一点,或者一些谷歌搜索可能会有所帮助
    • 忘了提到, __proto__ 在我上次检查时已被弃用。所以向前看,如果你想为一个对象添加一个方法或属性,只需使用 Person.prototype。
    猜你喜欢
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2013-09-27
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    相关资源
    最近更新 更多