有人能解释JavaScript中的对象和函数层次结构吗?与JavaScript一样,所有内容都是从Object继承的

Can anyone explain Object and Function hierarchy in JavaScript ? As in JavaScript everything is inherited from Object

本文关键字:JavaScript 继承 Object 一样 能解释 对象 层次结构 函数      更新时间:2023-09-26
console.log(Object instanceof Function); //true
console.log(Function instanceof Object); //true

在JavaScript内部,如果ObjectFunction都被定义为函数,那么它们之间的关系是什么?这两个实例是如何相互作用的?

我不明白Object是否在JavaScript中处于最顶端,以及Function是如何从Object继承的。。

我认为您可能会混淆Object和一般对象。从上面的内容来看,你可能会认为这意味着"所有对象都是函数",但事实并非如此。

所有函数都是对象。ObjectFunction都是(构造函数(函数,因此它们也是对象。换句话说,它们都是ObjectFunction的实例。

也许你会发现这更具启发性:

console.log(Object instanceof Function);         // true
console.log(Function instanceof Function);       // true
console.log(Object instanceof Object);           // true
console.log(Function instanceof Object);         // true
console.log(new Object() instanceof Function);   // false
console.log({} instanceof Function);             // false
console.log(new Function() instanceof Function); // true
console.log(function(){ }  instanceof Function); // true
console.log(new Object() instanceof Object);     // true
console.log({} instanceof Object);               // true
console.log(new Function() instanceof Object);   // true
console.log(function(){ }  instanceof Object);   // true