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

有大佬遇到过这个问题吗:这个输出结果为什么是这样?

有大佬遇到过这个问题吗:这个输出结果为什么是这样?

九州编程 2019-10-17 09:58:29
Function.prototype.a=1;Object.prototype.b=2;functionA(){}vara=newA();console.log(a.a,a.b);//undefined,2console.log(A.a,A.b);//1,2
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

a不是function当然a.a是undefineda是对象,a.b是2
A是function所以自身a是1function也是对象的一种,所以自身b是2
                            
查看完整回答
反对 回复 2019-10-17
?
动漫人物

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

A.__proto__===Function.prototype
A.__proto__.__proto__===Function.prototype.__proto__===Object.prototype
A.prototype!=A.__proto__
a.__proto__===A.prototype
a.__proto__.__proto__===A.prototype.__proto__===Object.prototype
一般情况下,a=newA之后,a.__proto__===A.prototype。
在定义函数时,如果这个函数可以用做构造函数,它会自动生成一个prototype属性,这个属性的值是一个普通的对象。
                            
查看完整回答
反对 回复 2019-10-17
  • 2 回答
  • 0 关注
  • 247 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信