代码中,两种创建p1、p2对象的方法,实际上作用都是一样的吗?

发布于 2022-09-05 04:15:22 字数 126 浏览 15 评论 0

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蘑菇王子 2022-09-12 04:15:22

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

黯然 2022-09-12 04:15:22

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

極樂鬼 2022-09-12 04:15:22

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

轻拂→两袖风尘 2022-09-12 04:15:22

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

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

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

console.log(p1); // {constructor:person}
console.log(p2); // {}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文