1.函数的prototype属性:
1)每个函数都有一个prototype属性,它默认指向一个object空对象(称作:原型对象);
2)原型有一个属性constructor,它指向函数对象;
3) 实例有__proto__属性,可以指向构建函数的prototype属性内容;
2.基本理解:
console.log(Object instanceof Function)//true
//Object 是实例,Function是Object的构造函数,则有:
console.log(Function.prototype===Object.__proto__)//true
console.log(Function instanceof Function)//true
console.log(Object instanceof Object)//true
console.log(Function instanceof Object)//true
//Function 是实例,Object是Function的构造函数,则有:
console.log(Function.prototype===Function.__proto__)//true
console.log(Object.prototype===Function.__proto__.__proto__)//true
function F(){}
console.log(F.__proto__===Function.prototype)//true
console.log(Object instanceof F)//false
//Object 是实例,F是构造函数,有:
console.log(Object.__proto__===Function.prototype)//true
console.log(Function.prototype.__proto__===Object.prototype)//true
console.log(Function.prototype.__proto__.__proto__===Object.prototype.__proto__)//true
console.log(Function.prototype.__proto__.__proto__)//null 原型链的尽头