240 发简信
IP属地:内蒙古
  • 其实我觉得楼主是想要解释为什么构造函数的原型对象也有constructor这个属性。不过我觉得楼主你这里说的的确有点问题。var A = new Person(); 这里的new在背后到底帮我们做了哪些事情?
    第一步: let A = { };
    第二步: A.__proto__ = Person.prototype;
    第三步: Person.cal(A);
    第四步: return A。
    并没有你在上面说的Person.prototype = A这么一步流程;如果要说是大致是这么个过程的话,其实也不对,因为他们两个是独立的关系[ 硬要说有关系的话,应该是A包含Person.prototypr ]。至于为什么原型对象上有constructor,我觉得没必要解释,或者可以看一下我在下面37楼评论的回复。它就是内置的默认属性,如果要搞事情的话,可能还会问:为什么对象都有__proto__属性?本来就是js语言内置的默认属性,该怎么解释呢?楼主可以在这个地方考虑修改一下,因为我一开始看到你这个表达式不得不说有点懵逼。。。

    最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)

    第二篇已更新,点击进入第三篇已更新,点击进入 三篇文章都更新完毕,完整的剖析了 JS 原型与原型链,希望通过这些教程能让你对 Javascript 这门语言理解的更透彻! 一...

  • 通俗一点理解,person1是构造函数Person的克隆体;而Person.prototype是构造函数Person的双腿。克隆体的是有Person构造出来的,所以克隆体的constructor属性指向的是本身(person1.constructor == Person);腿(Person.prototype)是也是构造函数造出来的一部分,所以他的constrcutor也指向构造函数【想不通的话就这么想:你的腿属不属于你?】所以答案也就出来了,你的腿和你的克隆体是等于的关系吗

    最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)

    第二篇已更新,点击进入第三篇已更新,点击进入 三篇文章都更新完毕,完整的剖析了 JS 原型与原型链,希望通过这些教程能让你对 Javascript 这门语言理解的更透彻! 一...