首页 > 解决方案 > 为什么 [1,2,3].prototype === Array.prototype 返回 false?

问题描述

我正在我的 Chrome 控制台中使用 Prototype。不[1,2,3].prototype === Array.prototype等于同一个原型,因为它们都包含相同的方法?

标签: javascript

解决方案


非类对象没有prototype属性。他们反而有__proto__. 所以这有效:

[1,2,3].__proto__ == Array.prototype
//=> true

但它已被弃用。如果你真的需要明确检查原型,你可以在现代 JS 引擎中使用它:

Object.getPrototypeOf([1,2,3]) == Array.prototype

然而,一般来说,检查一个对象是否是一个类的实例的方法是使用instanceof

[1,2,3] instanceof Array
//=> true

推荐阅读