console.log(Function instanceof Object);//true
console.log(Object instanceof Function);//true
此代码摘自文章:https://github.com/stevekwan/experiments/blob/master/javascript/object-vs-function.html
我想我明白什么是原型(prototype)继承以及 Js 对象模型是如何工作的,但是这个循环链接在两个基本的嗯......可能是构造函数(这是对象的函数......并且所有对象都是对象构造函数的实例...... ) 函数和对象让我大吃一惊。
在面向类的语言中,我可以想象有一些基本类 Object,我创建的每个类都自动继承自它。
对我来说有时间一致性 - 类 Object 首先出现,然后我写的所有其他东西都出现在第二个等等。我真的不明白两个构造函数如何神奇地同时出现并且是彼此的实例。
最佳答案
请注意,Function
和Object
都是引用函数的全局符号。所以这两个函数都是 Object
和 Function
的实例,因为它们继承自两个原型(prototype)。
如果你这样做就不会那么困惑:
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);
这些函数与任何其他函数一样具有这些属性:
var c = function() {};
console.log(c instanceof Object);
console.log(c instanceof Function);
在 instanceof
运算符的左侧,重要的是所涉及对象的性质。
关于javascript - 函数是对象的实例,对象是函数的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40633072/