JavaScript中instanceof运算符的使用示例
概述
instanceof
运算符在 JavaScript 中可以用于判断一个对象是否是某个构造函数的实例。该运算符表示判断左操作数是否是右操作数的实例,如果是返回 true
,否则返回 false
。其基本语法格式如下:
object instanceof constructor
其中,object
是要判断的对象,constructor
表示要判断的构造函数。
示例1
下面通过一个具体的例子来演示 instanceof
的使用。
function Person(name) {
this.name = name;
}
var person = new Person("Tom");
console.log(person instanceof Person); // true
在示例中,定义了一个 Person
构造函数,并创建了一个 person
对象,然后使用 instanceof
运算符来判断 person
对象是否是 Person
构造函数的实例。由于 person
对象是通过 Person
构造函数创建的,因此返回 true
。
示例2
下面再通过一个实际的应用场景来演示 instanceof
的使用。
定义一个 Animal 类,定义 say
方法,返回字符串 "I'm an animal."。定义 Cat 类继承自 Animal 类,定义 say
方法,返回字符串 "I'm a cat."。
function Animal() {
}
Animal.prototype.say = function() {
return "I'm an animal.";
}
function Cat() {
}
Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;
Cat.prototype.say = function() {
return "I'm a cat.";
}
var animal = new Animal();
var cat = new Cat();
console.log(animal instanceof Animal); // true
console.log(animal instanceof Cat); // false
console.log(cat instanceof Animal); // true
console.log(cat instanceof Cat); // true
在示例中,定义了 Animal
类和 Cat
类,并创建了一个 animal
对象和一个 cat
对象。然后使用 instanceof
运算符来判断对象所属的构造函数。由于 cat
对象是 Animal
类的实例(Cat
类继承自 Animal
类),因此返回 true
。而 animal
对象虽然是 Animal
类的实例,但不是 Cat
类的实例,因此返回 false
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中instanceof运算符的使用示例 - Python技术站