var f = {x:1} 这里的f是一个对象,为什么f.prototype.y=2 这个会报错; 而function f(){} f.prototype.y=2 这个就不会报错
①__proto__和constructor属性是对象所独有的;
② prototype属性是函数所独有的,因为函数也是一种对象,所以函数也拥有__proto__和constructor属性。
你要明白数据的类型是什么,var f那个是一个对象,第二个是function是个构造函数,prototype是函数拥有的.
函数function才有prototype这个默认属性。对象是没有这个默认属性的。对象有一个隐藏属性为__proto__
f.prototype是undefined