欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript中instanceof运算符的使用示例

程序员文章站 2022-06-14 11:17:13
instanceof运算符可以用来判断某个构造函数的prototype属性是否存在另外一个要检测对象的原型链上。 实例一:普遍用法 a instanceof b :检测...

instanceof运算符可以用来判断某个构造函数的prototype属性是否存在另外一个要检测对象的原型链上。

实例一:普遍用法

a instanceof b :检测b.prototype是否存在于参数a的原型链上.

function ben() {

}
var ben = new ben();
console.log(ben instanceof ben);//true

实例二:继承中判断实例是否属于它的父类

function ben_parent() {}

function ben_son() {}

ben_son.prototype = new ben_parent();//原型继承

var ben_son = new ben_son();

console.log(ben_son instanceof ben_son);//true

console.log(ben_son instanceof ben_parent);//true

实例三:表明string对象和date对象都属于object类型

下面的代码使用了instanceof来证明:string和date对象同时也属于object类型。

var simplestr = "this is a simple string"; 
var mystring = new string();
var newstr  = new string("string created with constructor");
var mydate  = new date();
var myobj   = {};

simplestr instanceof string; // returns false, 检查原型链会找到 undefined
mystring instanceof string; // returns true
newstr  instanceof string; // returns true
mystring instanceof object; // returns true

myobj instanceof object;  // returns true, despite an undefined prototype
({}) instanceof object;  // returns true, 同上

mystring instanceof date;  // returns false

mydate instanceof date;   // returns true
mydate instanceof object;  // returns true
mydate instanceof string;  // returns false

实例四:演示mycar属于car类型的同时又属于object类型

下面的代码创建了一个类型car,以及该类型的对象实例mycar. instanceof运算符表明了这个mycar对象既属于car类型,又属于object类型。

function car(make, model, year) {
 this.make = make;
 this.model = model;
 this.year = year;
}
var mycar = new car("honda", "accord", 1998);
var a = mycar instanceof car;  // 返回 true
var b = mycar instanceof object; // 返回 true