Function是Object的实例,Object是Function的实例?

Use*_*r15 4 javascript

 console.log(Function instanceof Object);//true
 console.log(Object instanceof Function);//true
Run Code Online (Sandbox Code Playgroud)

此代码取自文章:https://github.com/stevekwan/experiments/blob/master/javascript/object-vs-function.html

我想我明白什么是原型继承以及Js对象模型是如何工作的,但是这个循环链接在两个基本的hmm ..可能的构造函数(它是作为对象的函数..并且所有对象都是Object构造函数的实例......)函数和对象只是让我大吃一惊.

在面向类的语言中,我可以想象有一些基本的类Object,我所创建的每个类都自动从它继承.

对我来说有时间一致性 - 类对象首先出现,然后我写的所有其他内容出现在第二个等等.我真的不明白两个构造函数是如何神奇地同时出现并且是彼此的实例.

Poi*_*nty 5

需要注意的是FunctionObject是指功能都全局符号.因此,无论这些功能都是实例ObjectFunction,因为他们从两个原型继承.

如果你这样做,那就不那么容易混淆了:

var a = Function, b = Object;

console.log(a instanceof Object);
console.log(b instanceof Object);
console.log(a instanceof Function);
console.log(b instanceof Function);
Run Code Online (Sandbox Code Playgroud)

这些函数具有与其他函数一样的属性:

var c = function() {};

console.log(c instanceof Object);
console.log(c instanceof Function);
Run Code Online (Sandbox Code Playgroud)

instanceof操作员的左侧,重要的是所涉及对象的性质.