JS中Function和Object的继承关系

23次阅读

共计 610 个字符,预计需要花费 2 分钟才能阅读完成。

问题:JS 中 Function 和 Object 的继承关系?
回答:如下图所示

理解:
function Foo () {}
let foo = new Foo();
let obj = {show: function (){}};

1 new 产生的 function/object 无 prototype
foo.__proto__ === Foo.prototype; // true
foo.prototype; // undefined

2 所有 function/object 的构造函数都继承于 Function.prototype
Foo.__proto__ === Function.prototype; // true
obj.show.__proto__ === Function.prototype; // true
Object.__proto__ === Function.prototype; // true

3 所有原型对象都继承于 Object.prototype,除了 Object.prototype 本身
Foo.prototype.__proto__ === Object.prototype; // true
obj.show.prototype.__proto__ === Object.prototype; // true
Function.prototype.__proto__ === Object.prototype; // true
Object.prototype.__proto__ === null; // true

正文完
 0