javascript - 为什么 [1,2,3].prototype === Array.prototype 返回 false?
问题描述
我正在我的 Chrome 控制台中使用 Prototype。不[1,2,3].prototype === Array.prototype
等于同一个原型,因为它们都包含相同的方法?
解决方案
非类对象没有prototype
属性。他们反而有__proto__
. 所以这有效:
[1,2,3].__proto__ == Array.prototype
//=> true
但它已被弃用。如果你真的需要明确检查原型,你可以在现代 JS 引擎中使用它:
Object.getPrototypeOf([1,2,3]) == Array.prototype
然而,一般来说,检查一个对象是否是一个类的实例的方法是使用instanceof
:
[1,2,3] instanceof Array
//=> true
推荐阅读
- python - 将数据框列值传递给函数
- gitlab - gitlab:我如何以编程方式将工件上传到 gitlab 注册表
- android - 您如何在 Android 中请求 MANAGE_EXTERNAL_STORAGE 权限?
- python - Tkinter 窗口稍微偏离中心
- asp.net-core - 在 ASP.net core 3.1 Razor Pages 中打印 PDF
- reactjs - 在 React-Router 中设置复杂的站点地图(不使用 react-router-sitemap)
- d3.js - 为什么我的 D3js 折线图无法呈现值和 x 轴?
- python - 如何使 Python 的 print() 非阻塞?
- python - 带有 3.9.0 的 macs10.15.7 上的 gensim 安装错误
- java - 无法调用“java.sql.Connection.getMetaData()”,因为“
“ 一片空白