JavaScript中instanceof运算符的使用示例
程序员文章站
2023-11-16 08:20:58
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