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

 

posted @ 2019-08-15 10:48  Cober_kuang  阅读(20)  评论(0编辑  收藏  举报