You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中为什么可以在数组内对象的属性上使用includes方法

const obj1 = { name: "kim", age: 14 };
const obj2 = { name: "Steve", age: 20};
const arr  = [ obj1, obj2];

arr[0]["name"].includes("han"); // 实际返回false,你示例注释标注的true是错误结果

认知错误点说明

  • includes() 不是数组专属方法,String 原型上同样部署了 includes() 实例方法,作用是检测调用方法的字符串中是否包含传入的子串,匹配成功返回 true,否则返回 false。
  • 你调用 includes() 的主体既不是对象也不是数组:
    • arr[0] 确实是你定义的 obj1 对象
    • 后续通过 ["name"] 取到的是该对象的 name 属性值,也就是字符串类型的 "kim"
    • 最终是在字符串 "kim" 上调用的 includes() 方法,完全符合字符串方法的调用规则,不存在对象调用数组方法的情况。

内容的提问来源于stack exchange,提问作者김경한

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:12:03