javascript中一切都是对象,主要分下面几类:
1>原型对象
Object.prototype?? (所有对象的原型,原型链的最顶端)
??????? Object.prototype.__proto__ 是null
Function.prototype? (所有函数对象的原型,包括构造函数对象,其实就是function(){})
?????? alert(Function.prototype); //function(){}
?????? Function.prototype.__proto__是Object.prototype
Boolean.prototype是false,Boolean.prototype.__proto__是Object.prototype
String.prototype是"",String.prototype.__proto__是Object.prototype
Array.prototype是"",Array.prototype.__proto__是Object.prototype
用户自定义构造函数Foo的原型对象是Foo.prototype,Foo.prototype.__proto__是Object.prototype
2>构造函数对象(内部原型__proto__都是Function.prototype)
2.1>用户自定义构造函数
??? function Foo(){
?
??? }
?
???? Foo的外部原型是Foo.prototype,Foo.prototype.__proto__是Object.prototype
2.2>系统内置构造函数 ??
???? Object的外部原型是Object.prototype
?
???? Function的外部原型是Function.prototype
?
???? Array的外部原型是Array.prototype
?
???? String的外部原型是String.prototype
?
???? Boolean的外部原型是Boolean.prototype
3>用户定义对象(只有内部原型__proto__,没有外部原型prototype)
??? function Foo(){
?
??? }
??? var foo = new Foo();
??? alert(foo.__proto__) //[object Object],内部原型是Foo.prototype