4 个回答

两者大不相同,对象p1.constructor的function (){}是手动赋值给p1对象的,p1在创建之初的constructor并不是它而是指向Object对象的函数。另外p2是person实例对象,所以说p2的constructor是指向person。

    不是一样的,p1创建的对象 p1.constructor是本身p1对象本身的属性,而p2的constructor是其原型链上的属性。

      • 593

      第一个你是在实例对象中赋值了。
      第二个是委托在原型链中查找的

        • 12k

        差很多,尤其是 prototypep2constructor其实是person.prototype.constructor,当然这个值默认也是person。实际情况是,constructor这个属性几乎用不到。

        http://zonxin.github.io/post/...

        看上面的链接,直到你明白以下输出结果。

        console.log(p1); // {constructor:person}
        console.log(p2); // {}
          撰写回答

          登录后参与交流、获取后续更新提醒