美文网首页
LeetCode题解:2618. 检查是否是类的对象实例,使用i

LeetCode题解:2618. 检查是否是类的对象实例,使用i

作者: Lee_Chen | 来源:发表于2023-07-17 13:41 被阅读0次

原题链接:
https://leetcode.cn/problems/check-if-object-instance-of-class/

解题思路:

题目要求我们编写一个函数,检查给定的值是否是给定类或超类的实例。可以传递给函数的数据类型没有限制。例如,值或类可能是 undefined。

我们可以使用 JavaScript 的 instanceof 运算符来检查一个对象是否是一个类的实例。然而,instanceof 运算符不能用于检查原始类型的值(如数字、字符串、布尔值、nullundefinedBigInt)是否是对应的包装对象的实例。为了处理这种情况,我们可以先使用 Object() 函数将原始类型的值转换为对象,然后再使用 instanceof 运算符进行检查。

解题代码:

/**
 * @param {any} obj - 需要检查的对象
 * @param {any} classFunction - 需要检查的类
 * @return {boolean} - 如果 obj 是 classFunction 的实例,则返回 true,否则返回 false
 */
var checkIfInstanceOf = function(obj, classFunction) {
  // 如果 obj 是 null 或 undefined,或者 classFunction 不是一个函数,
  // 那么我们可以直接返回 false
  if (obj === null || obj === undefined || !(classFunction instanceof Function))
    return false;

  // 使用 Object() 函数将 obj 转换为对象(如果它是一个原始类型的值),
  // 然后使用 instanceof 运算符检查它是否是 classFunction 的实例
  return Object(obj) instanceof classFunction;
};

这个解法可以处理各种类型的值和类,包括原始类型的值和它们的包装对象,以及自定义的类和它们的实例。

相关文章

  • isMemberOfClass与isKindOfClass区别

    使用 isMemberOfClass: 判断对象是否是某个类的实例 使用 isKindOfClass: 判断是否为...

  • 2019-06-27

    类小结:类的首位字母必须大写:实例化:对象名.成员名isinstance()用来测试一个对象是否是某个类的实例:i...

  • swift isMemberOf ; isKindOf

    isMemberOf 判断某对象是否为此类的实例 isKindOf 判断某对象是否为此类以及此类的派生类的实例 i...

  • 六、新时间日期API

    使用LocalDate、LocalTime、LocalDateTime这三个类的实例是不可变的对象。分别表示使用I...

  • java——对象实例化过程

    理解Java中对象实例化过程是很重要的,实例化过程主要步骤如下: 第1步:在创建类之前,检查类是否加载(是将硬盘上...

  • 18、【Swift】类型转换

    使用场景:判断实例的类型转换实例的类型 检查类型: is 转换类型: as 检查是否遵循某个协议 为类型转换定义类...

  • Android - 学习笔记二(变量类型、修饰符、运算符)

    类变量 instanceof 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。 syn...

  • isPrototypeOf和instanceOf

    instanceOf 用于检查对象是否是某个构造函数(类型)的实例 isProtoTypeOf 判断是否是某个实例...

  • java反射

    一、Class类的使用 类是对象,任何一个类都是java.lang.class类的实例对象,这个类,这个实例对象可...

  • OC 对象的种类

    分类 instance 对象(实例对象) class 对象(类对象) meta-class 对象 (元类对象) i...

网友评论

      本文标题:LeetCode题解:2618. 检查是否是类的对象实例,使用i

      本文链接:https://www.haomeiwen.com/subject/fidgudtx.html