📜  Lodash _.isInstanceOf() 方法(1)

📅  最后修改于: 2023-12-03 15:32:44.564000             🧑  作者: Mango

Lodash _.isInstanceOf() 方法

Lodash 是 JavaScript 的常用工具库,提供了丰富的工具函数,帮助我们更加高效地编写代码。其中,_.isInstanceOf() 方法可以用来判断一个对象是否是指定类的实例。

语法
_.isInstanceOf(value, Constructor)

参数说明:

  • value:用于判断的对象
  • Constructor:指定的类

返回值:

  • 布尔值,指示对象是否为指定类的实例。
示例
class Animal {
  constructor(type) {
    this.type = type;
  }
}

class Cat extends Animal {
  constructor(type, name) {
    super(type);
    this.name = name;
  }
}

const cat = new Cat('cat', 'Tom');
console.log(_.isInstanceOf(cat, Cat)); // true
console.log(_.isInstanceOf(cat, Animal)); // true
console.log(_.isInstanceOf(cat, Object)); // true
console.log(_.isInstanceOf([], Array)); // true

const animal = new Animal('animal');
console.log(_.isInstanceOf(animal, Cat)); // false
console.log(_.isInstanceOf(animal, Animal)); // true
console.log(_.isInstanceOf(animal, Object)); // true
console.log(_.isInstanceOf([], Array)); // true

在上述示例中,我们定义了一个 Animal 父类和一个 Cat 子类,然后创建了一个 Cat 对象和一个 Animal 对象,分别用 _.isInstanceOf() 方法来判断它们是否为 Cat 类、Animal 类或 Object 类的实例,并输出了结果。

注意事项
  • 如果第一个参数 value 不是一个对象,会直接返回 false
  • 如果第二个参数 Constructor 不是一个函数,会抛出 TypeError 异常。
  • _.isInstanceOf() 方法只能判断是否为指定类的实例,不能判断是否为子类的实例。以示例中代码为例,如果我们将第二个参数改为 Animal 类,用来判断 cat 是否是 Animal 的实例,也会返回 true,因为 CatAnimal 的子类。