看Object MDN上的描述:
在 JavaScript 中,几乎所有的对象都是 Object
类型的实例,它们都会从 Object.prototype
继承属性和方法,虽然大部分属性都会被覆盖(shadowed)或者说被重写了(overridden)。 除此之外,Object
还可以被故意的创建,但是这个对象并不是一个“真正的对象”(例如:通过 Object.create(null)
),或者通过一些手段改变对象,使其不再是一个“真正的对象”(比如说:Object.setPrototypeOf
)。
通过new Object();Object.assign({}); {};Object.create({});Object.freeze({});等方式创建的对象会有继承Object.prototype 属性和方法。