1,一切皆对象,对象有两种,一种是函数对象(Function的实例),另一种是普通对象(函数对象的实例);
2,每一个对象都有一个proto属性,每一个函数对象都有一个prototype属性;
3,;
4,每一个对象的构造函数都是函数对象;
5,每一个函数对象的prototype属性的构造函数是Object;
6,每一个函数对象的构造函数是Function,包括Object和Function自身;
7,原型和原型链是JS实现继承的一种模型,原型链的形成是真正是靠proto 而非prototype;
function Person(){}
var person1 = new Person();
console.log(person1.__proto__ === Person.prototype); // true
console.log(Person.prototype.__proto__ === Object.prototype) //true
console.log(Object.prototype.__proto__) //null(最顶端了)
Person.__proto__ == Function.prototype; //true
console.log(Function.prototype)// function(){} (空函数)
var num = new Array()
console.log(num.__proto__ == Array.prototype) // true
console.log( Array.prototype.__proto__ == Object.prototype) // true
console.log(Array.prototype) // [] (空数组)
console.log(Object.prototype.__proto__) //null
console.log(Array.__proto__ == Function.prototype)// true