两者大不相同,对象p1.constructor的function (){}是手动赋值给p1对象的,p1在创建之初的constructor并不是它而是指向Object对象的函数。另外p2是person实例对象,所以说p2的constructor是指向person。
不是一样的,p1创建的对象 p1.constructor是本身p1对象本身的属性,而p2的constructor是其原型链上的属性。
第一个你是在实例对象中赋值了。第二个是委托在原型链中查找的
差很多,尤其是 prototype,p2的constructor其实是person.prototype.constructor,当然这个值默认也是person。实际情况是,constructor这个属性几乎用不到。
prototype
p2
constructor
person.prototype.constructor
person
http://zonxin.github.io/post/...
看上面的链接,直到你明白以下输出结果。
console.log(p1); // {constructor:person} console.log(p2); // {}
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(4)
两者大不相同,对象p1.constructor的function (){}是手动赋值给p1对象的,p1在创建之初的constructor并不是它而是指向Object对象的函数。另外p2是person实例对象,所以说p2的constructor是指向person。
不是一样的,p1创建的对象 p1.constructor是本身p1对象本身的属性,而p2的constructor是其原型链上的属性。
第一个你是在实例对象中赋值了。
第二个是委托在原型链中查找的
差很多,尤其是
prototype
,p2
的constructor
其实是person.prototype.constructor
,当然这个值默认也是person
。实际情况是,constructor
这个属性几乎用不到。http://zonxin.github.io/post/...
看上面的链接,直到你明白以下输出结果。