所以所有函数/类的实例的
__proto__一定指向Function.prototype
所以所有对象的实例的
__proto__一定指向Function.prototype
比如,Array、Number、String等内置类
Function.prototype的一些属性和方法:
call、apply、bind
toString等
Function的一些属性和方法:
prototype、__proto__等
Array.prototype的一些属性和方法:
push、pop、forEach、map、sort等
Array的一些属性和方法:
length、from、isArray
prototype、__proto__等
Object.prototype的一些属性和方法:
hasOwnProperty、isPrototypeOf、toString、valueOf等
Object的一些属性和方法:
assign、create、defineProperty、entries、freeze、keys
prototype、__proto__等
let arr = [10, 20, 30]
let Func = function () { }
let f = new Func()
let obj = {}arr的__proto__指向Array.prototype
Array.prototype的__proto__指向Object.prototype
f的__proto__指向Func.prototype
Func.prototype的__proto__指向Object.prototype
Func的__proto__指向Function.prototype
Function.prototype的__proto__指向Object.prototype
这里的
Function.prototype是一个匿名空函数,但是它的相关操作和其他类型的prototype对象没有任何区别,并且它的的__proto__也指向Object.prototype
obj的__proto__指向Object.prototype
Object.prototype的__proto__指向null
Array的__proto__指向Function.prototype
Object的__proto__指向Function.prototype
Function的__proto__指向Function.prototype
console.log(Func instanceof Func, false);
console.log(Function instanceof Function, true);
console.log(Function.__proto__ === Function.prototype, true);所以
Object作为一个类,也是一个函数,所以他是Function的一个实例
Function作为一个类,也是一个对象,所以他也是Object的一个实例