1.每个对象(对象的定义假如不懂可以自己研究一下)都具有一个名为proto的属性;
2.每个构造函数(构造函数标准为大写开头,如Function(),Object()等等JS中自带的构造函数,以及自己创建的)都具有一个名为prototype的方法(注意:既然是方法,那么就是一个对象(JS中函数同样是对象),所以prototype同样带有proto属性);
3.每个对象的proto属性指向自身构造函数的prototype;
为了方便记忆可以得出如下结论(如有错误欢迎斧正…..)
prototype是构造函数独有的属性;
对象的proto属性通常与其构造函数的prototype属性相互对应;
所有构造函数的的prototype方法的__都指向__Object.prototype(除了….Object.prototype自身);
需要注意的指向是
Function的proto指向其构造函数Function的prototype;
Object作为一个构造函数(是一个函数对象!!函数对象!!),所以他的proto指向Function.prototype;
Function.prototype的proto指向其构造函数Object的prototype;
Object.prototype的proto指向null(尽头);