扫码关注官方订阅号
instanceof 用于判断一个变量是否某个对象的实例。什么叫是某个对象的实例啊,这句话什么意思。。?
走同样的路,发现不同的人生
老规矩,先上例子:
function Person(name, age) { this.name = name; this.age = age; } var person1 = new Person('xiaoming', 23); var person2 = new Person('xiaohong', 25); console.log(person1.name); //xiaoming console.log(person2.age); //25 console.log(person1 instanceof Person); //true console.log(person2 instanceof Person); //true console.log(person1 instanceof Object); //true console.log(person2 instanceof Object); //true
person1和person2有着相同的属性,但又有不同的属性值,它们都是通过Person构造出来的具有相似结构的对象,所以它们都是Person的实例。通过Person()构造函数我们可以创建出无数个类似的实例。为什么我们可以对引用类型使用像toString()这样的方法?因为所有的引用类型都是Object的实例。它们使用的toString()来自Object,确切的来说,来自Object的原型。
person1
person2
Person
Person()
toString()
Object
在JavaScript中,所谓的是某个对象的实例,并不像其他向面向对象语言那么严格。
当a instanceof Cons的结果为true时,只是说明
a instanceof Cons
true
Cons.prototype位于对象a的原型链上
Cons.prototype
a
并不能说明a这个对象是由构造函数Consnew出来的。
Cons
举例:
function Student() {} var s = new Student() function Teacher() {} Teacher.prototype = Student.prototype s instanceof Teacher // 结果true
function Person(){ this.name = "person"; } var p = new Person(); p instanceof Person ? "p is an instance of Person" : "p isn't an instance of Person";
用于确定该对象是否是某个对象的子类。
比如:
var arr = [] arr instanceof Array // true arr instanceof String // String
在面向对象语言中,一般会从一个模子中实例化出来一个对象(Object),或者叫实例(Instance),在JavaScript描述成一个变量是一个函数的实例或许会比较好理解一点。但是一个函数是不是一个对象呢?一个函数应该是一个对象。
function Person(){ this.name = "person"; } var p = new Person(); p instanceof Person ? "p is an instance of Person" : "p isn't an instance of Person"; Person instanceof Object; //true Persion instanceof Function; //true
在上面的代码中可以看出p是Person(模子)的一个对象(实例)而Person本身是一个函数对象,是对象Function的一个实例
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
老规矩,先上例子:
person1和person2有着相同的属性,但又有不同的属性值,它们都是通过Person构造出来的具有相似结构的对象,所以它们都是Person的实例。通过Person()构造函数我们可以创建出无数个类似的实例。为什么我们可以对引用类型使用像toString()这样的方法?因为所有的引用类型都是Object的实例。它们使用的toString()来自Object,确切的来说,来自Object的原型。在JavaScript中,所谓的是某个对象的实例,并不像其他向面向对象语言那么严格。
当
a instanceof Cons的结果为true时,只是说明并不能说明
a这个对象是由构造函数Consnew出来的。举例:
用于确定该对象是否是某个对象的子类。
比如:
在面向对象语言中,一般会从一个模子中实例化出来一个对象(Object),或者叫实例(Instance),在JavaScript描述成一个变量是一个函数的实例或许会比较好理解一点。
但是一个函数是不是一个对象呢?一个函数应该是一个对象。
在上面的代码中可以看出p是Person(模子)的一个对象(实例)
而Person本身是一个函数对象,是对象Function的一个实例