-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
题目:
以下代码运行后输出什么?为什么?
console.log(Object.getPrototypeOf(Object.prototype));参考答案:
nullJavaScript 规定,所有对象都有自己的原型对象(prototype)。一方面,任何一个对象,都可以充当其他对象的原型;另一方面,由于原型对象也是对象,所以它也有自己的原型。因此,就会形成一个“原型链”(prototype chain):对象到原型,再到原型的原型……
如果一层层地上溯,所有对象的原型最终都可以上溯到 Object.prototype,即 Object 构造函数的 prototype 属性。也就是说,所有对象都继承了Object.prototype 的属性。这就是所有对象都有 valueOf 和 toString 方法的原因,因为这是从Object.prototype 继承的。
那么,Object.prototype 对象有没有它的原型呢?有,Object.prototype 的原型是 null。null 没有任何属性和方法,也没有自己的原型。因此,原型链的尽头就是 null。
Metadata
Metadata
Assignees
Labels
No labels