📅  最后修改于: 2023-12-03 15:32:44.564000             🧑  作者: Mango
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
,因为 Cat
是 Animal
的子类。