【八股系列】JavaScript如何判断一个对象是否属于某个类?
创始人
2024-11-18 00:07:43

🎉 博客主页:【剑九 六千里-CSDN博客】
🎨 上一篇文章:【探索扫描二维码登录的奥秘:从前端到后端的无缝连接】
🎠 系列专栏:【面试题-八股系列】
💖 感谢大家点赞👍收藏⭐评论✍

在这里插入图片描述

在这里插入图片描述
JavaScript中,判断一个对象是否属于某个类(或者更准确地说,是否是某个构造函数创建的实例)有几种常见的方法:

  1. instanceof运算符
    instanceof运算符用来检测构造函数的prototype属性是否出现在某个实例对象的原型链上。这是最常用的判断方式之一。
   function Person() {}    const person = new Person();    console.log(person instanceof Person); // true 
  1. constructor属性
    每个对象都有一个constructor属性,指向创建它的构造函数。但是这个属性可能被篡改,因此不是最可靠的方法。
  function Person() {}   const person = new Person();   console.log(person.constructor === Person); // true 
  1. Object.prototype.toString.call()
    这个方法可以返回一个表示对象类型的字符串。对于内置类型,这是一个非常准确的判断方式。
 function Person() {}  const person = new Person();  // true, 但对于自定义类,只能确认是对象``  console.log(Object.prototype.toString.call(person) === "[object Object]"); 

4. typeof运算符
typeof主要用于判断基本数据类型,对于对象和数组,都会返回"object",因此不是最佳选择。

  const obj = {};   console.log(typeof obj); // "object" 
  1. Array.isArray()
    如果你要判断的对象是数组,可以使用Array.isArray(),这是一个更现代且准确的方法。
   const arr = [1, 2, 3];    console.log(Array.isArray(arr)); // true 

在实际开发中,instanceofObject.prototype.toString.call()是较为推荐的使用方式,因为它们提供了更好的类型检查,并且不易受到属性篡改的影响。对于自定义的类,通常会使用instanceof。对于内置类型,Array.isArray()和Object.prototype.toString.call()是更安全的选择。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...