Function原型链的实现探索
在探索原型链时,发现了以下奇怪现象:
Function.__proto__ === Function.prototype;// true Function.prototype.__proto__ === Object.prototype;// true Function.__proto__();// 并没有报错,且返回了undefined // 因此还原了Function的实现过程 var f = function(){};// 声明一个无实体的函数 f.__proto__ = Object.prototype;// 让他的__proto__指向Object的prototype var Func = {};// 模拟Function创建 Func.__proto__ = f; Func.prototype = f; 测试: Func.__proto__ === Func.prototype;// true Func.prototype.__proto__ === Object.prototype;// true Func.__proto__();// 并没有报错,且返回了undefined