美文网首页
【JS】 检查给定的值是否是给定类或超类的实例

【JS】 检查给定的值是否是给定类或超类的实例

作者: JellyL | 来源:发表于2024-02-25 17:41 被阅读0次

检查给定的值是否是给定类或超类的实例,可以传递给函数的数据类型没有限制。例如,值或类或undefined

方案一、通过原型链检查

var checkIfInstanceOf = function(obj, classFunction) {
    if(obj === null || obj === undefined || classFunction === null || classFunction === undefined) {
        return false;
    }

    while(obj.__proto__ !== null) {
        if (obj.__proto__ === classFunction.prototype) {
            return true;
        } else {
            obj = obj.__proto__;
        }
    }
    return false;  
};

方案二、instanceof 检查

var checkIfInstanceOf = function(obj, classFunction) {
   if (obj === null || obj === undefined || !(classFunction instanceof Function)) {
        return false;
    }

    return Object(obj) instanceof classFunction;
};

相关文章

  • C++ primer 14章习题集

    1、编写一个类令其检查两个值是否相同,替换掉某个序列中具有给定值的素有实例 利用函数对象作为replace_if算...

  • Class-isAssignableFrom()使用

    isAssignableFrom(Class c) 标识 “当前Class 是否是给定的 Class 的超类...

  • Swift 类型转换详解

    检查实例的类型; 将实例看作其自身类层次结构中其他不同的超类或子类; 类型转换可以检查类型是否符合某协议; Swi...

  • 18 Type Casting 类型转换

    类型转换是检查实例类型的一种方法,或将该实例视为与其自身类层次结构中其他位置不同的超类或子类。 Swift中的类型...

  • 算法 查找 笔记

    查找就是根据给定的某个值,在查找表中确定一个其关键字等于给给定值的数据元素(或记录)。 查找表是由同一类型的数据元...

  • 第18章:类型转换

      类型转换是一种检查实例类型的方法,或者将该实例视为与其自己的类层次结构中的其他位置不同的超类或子类。  Swi...

  • Runtim运行时语法

    class_getClassVariable : 返回Ivar给定类的指定类变量返回Ivar给定类的指定类变量。I...

  • 方法

    本页包含内容: [TOC] 方法是某些特定类型相关联的函数。 类、结构体、枚举都可以定义实例方法;实例方法为给定类...

  • Swift-类型转换、校验

    类型转换是一种检查实例类型的方法,或者将该实例视为来自其自身类层次结构中的其他地方的不同超类或子类。Swift中的...

  • 类与对象实例的关系判断

    instanceof: 用来判断对象是否是类的实例自身实例或子类实例 instanceof 自身类 返回true ...

网友评论

      本文标题:【JS】 检查给定的值是否是给定类或超类的实例

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