在JavaScript中,每个对象都从特定原型继承其属性和方法,其中原型是对象。Object.prototype的构造函数
继承形成一个原型链,其中(Object.prototype)位于其顶部(后面跟着没有属性或方法的null),并且所有对象都从中继承(除非有人将其他更改插入到原型链中) 。
If(Object.prototype)是一个对象,它的构造函数是什么?
我的意思是什么完成这个表达式才能被评估为真。
Object.prototype instanceof .....
在JavaScript中,每个对象都从特定原型继承其属性和方法,其中原型是对象。Object.prototype的构造函数
继承形成一个原型链,其中(Object.prototype)位于其顶部(后面跟着没有属性或方法的null),并且所有对象都从中继承(除非有人将其他更改插入到原型链中) 。
If(Object.prototype)是一个对象,它的构造函数是什么?
我的意思是什么完成这个表达式才能被评估为真。
Object.prototype instanceof .....
从"this and Object Prototypes" book of "You don't know JS"系列凯尔Simpsion
function Foo() {
// ...
}
Foo.prototype.constructor === Foo; // true
var a = new Foo();
a.constructor === Foo; // true
的
Foo.prototype
对象在默认情况下(在声明时就 片断1行!)获取一个公共的,不可枚举(见第二章3)属性 调用.constructor
,并且此属性是对象返回到与对象关联的 函数(在这种情况下为Foo)的参考。此外,我们看到由“构造函数”调用new Foo()
创建的对象a
似乎也有一个名为.constructor
的属性,其中 类似地指向“创建它的函数”。注意:这不是真的。 a没有
.constructor
属性, ,尽管a.constructor
确实解析为Foo
函数,但 “构造函数”实际上并不意味着“由...构造”,因为它出现 。我们很快会解释这种奇怪的。...
“在JavaScript对象有一个内部属性,在 说明书中的[[Prototype]],这简直是到另一个 对象的引用。表示为”。
所以,Object.prototype本身不是一个对象。关于你提到的有关的instanceof具体问题:
var a = new Function();
a.prototype instanceof Object; //true
var b = new String();
b.prototype instanceof Object; //false
好吧,我现在不谈论构造函数属性。我问什么是用于创建实例(Object.prototype)的函数构造函数。 –
在你展示的例子中,创建实例a的构造函数是Foo。同样,创建Object.prototype的构造函数是什么? –
已编辑。看看这是否澄清事情。 – Aydin4ik
[它的海龟一路下滑(https://en.wikipedia.org/wiki/Turtles_all_the_way_down) – Barmar
目前并不需要一个构造函数,它是一个内置的Object就是。你可能会问什么是* null *的构造函数。 – RobG
null虽然使用了typeof运算符,但它使用的是'object' –