【问题标题】:Infinite nesting of constructors in __proto__ javascript [duplicate]__proto__ javascript中构造函数的无限嵌套[重复]
【发布时间】:2023-03-13 21:43:01
【问题描述】:

我正在检查通过函数构造函数创建的对象的 proto。我很想知道 proto

中构造函数->prototype 无休止嵌套背后的原因

代码是:

var Shape = function(dimensions) {
  this.dimensions = dimensions;
  this.printShape  = function() {
    console.log("I have" + this.dimensions + "dimensions");
  }
}
var square = new Shape(4);

嵌套截图:

【问题讨论】:

  • square.__proto__ === square.__proto__.constructor.prototype
  • 如果你只有循环引用var a = {}, b = {}; a.b = b; b.a = a; console.log(a)
  • @YuryTarabanko 你能解释一下吗?
  • 哪部分不清楚?实例内部原型引用它的构造函数原型属性。只有两个相互引用的对象

标签: javascript jquery angularjs node.js google-chrome


【解决方案1】:

JavaScript 支持一种更强大的继承类型,称为原型继承。

任何对象都可以有一个与之关联的原型对象。原型对象,可以有自己的原型对象。这个原型序列构成了对象的原型链。

【讨论】:

    【解决方案2】:

    这不是一个永无止境的系列!一个的构造函数是另一个的原型。

    【讨论】:

    • 你能解释一下吗?请。
    • @MuhammadMehdi 就像当你有镜子 A 反射镜子 B 时,你可以在镜子 B 中看到“另一个”镜子 A。没有镜子永远存在;只有两个镜子。同样,这里:原型的构造函数的原型就是它自己(而构造函数的原型的构造函数就是它自己)。这是一个循环引用,而不是无限倒退。
    • 除非您想要解释“构造函数”和“原型”?为此,我必须复习一下我的 JavaScript;当我 2¼ 年前写下这个答案时,我正处于忘记的过程中。
    • 感谢您的回复,可以向我发送任何解释此逻辑事物以及构造函数和原型的教程。
    • @MuhammadMehdi 不,抱歉,但我相信您可以在 developer.mozilla.org 上找到。
    猜你喜欢
    • 2018-02-27
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多