var a = {}, b = Object.prototype;
[a.prototype === b, Object.getPrototypeOf(a) === b]
返回结果为[false,true].
首先prototype属性是函数才有的属性,对象是没有的,对象要想访问原型对象需要用object.__proto__,因此a.prototype返回undefined,因为a是一个对象,它没有prototype属性.Object.getPrototypeOf(a)相当于a.__proto__,所有用Object()创建的对象它们的原型对象都指向同一个对象(包括字面量形式创建的对象),因此Object.getPrototypeOf(a) === b返回true.
44个javascript问题-29(来自知乎)
最新推荐文章于 2023-10-23 20:29:58 发布