为了账号安全,请及时绑定邮箱和手机立即绑定

使用Object.defineProperty一个构造函数的prototype出现的奇怪的问题?

使用Object.defineProperty一个构造函数的prototype出现的奇怪的问题?

陪伴而非守候 2019-01-05 11:37:18
有一天我在看MDN上对defineProperty的时候,有一段没看明白,所以就在浏览器上跑了一段这样的代码做调试var Foo = function(){};Object.defineProperty(Foo.prototype,"x",{    get(){        return 3;     } });var foo = new Foo();console.dir(foo);我期待的结果应该是Foo {    __proto__:{         constructor: ƒ (),         x: 3,         __proto__: Object     } }但是真正的结果是Foo {     x: 3,     __proto__:{         constructor: ƒ (),         x: 3,         __proto__: Object     }}为什么在最外层就已经出现了x属性呢?求大神和老师解惑
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

谷歌试了跟你的结果一样,然后测试了下

console.dir(foo.hasOwnProperty('x'));


查看完整回答
反对 回复 2019-01-05
  • 1 回答
  • 0 关注
  • 474 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号