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

Function.prototype.a=1;
Object.prototype.b=2;
functionA(){}
vara=newA();
console.log(a.a,a.b);//undefined,2
console.log(A.a,A.b);//1,2
九州编程
浏览 248回答 2
2回答

万千封印

a不是function当然a.a是undefineda是对象,a.b是2A是function所以自身a是1function也是对象的一种,所以自身b是2

动漫人物

A.__proto__===Function.prototypeA.__proto__.__proto__===Function.prototype.__proto__===Object.prototypeA.prototype!=A.__proto__a.__proto__===A.prototypea.__proto__.__proto__===A.prototype.__proto__===Object.prototype一般情况下,a=newA之后,a.__proto__===A.prototype。在定义函数时,如果这个函数可以用做构造函数,它会自动生成一个prototype属性,这个属性的值是一个普通的对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript