说明
任何时候,一个构造函数创建一个新的对象,该对象会被认为是它的构造函数的一个 instance
。
JavaScript 提供了一种方便的方法来验证它:instanceof
运算符。
instanceof
允许你将对象与构造函数进行比较,根据该对象是否使用构造函数创建,返回 true
或 false
。
以下是一个例子:
var Bird = function( name, color ) {
this.name = name;
this.color = color;
this.numLegs = 2;
}
var crow = new Bird("Alexis", "black");
crow instanceof Bird; // => true
如果在不使用构造函数的情况下创建对象,instanceof
将验证它不是该构造函数的实例:
var canary = {
name: "Mildred",
color: "Yellow",
numLegs: 2
};
canary instanceof Bird; // => false
练习
创建一个 House
构造函数的新实例,命名为 myHouse
并传递一些参数。然后,使用 instanceof
来验证它是否为 House
的实例。
myHouse
应该有一个设置为数值的numBedrooms
属性- 确保使用
instanceof
运算符验证myHouse
是House
的一个实例。
答案
方法 | 描述 |
new | 创建一个用户定义的对象类型实例或具有构造函数的内置对象实例 |
let | 声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。 |
this | 当前执行代码的环境对象 |
instanceof | 用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链 |
/* jshint expr: true */
function House(numBedrooms) {
this.numBedrooms = numBedrooms;
}
// Add your code below this line
let myHouse = new House(1440);
myHouse instanceof House;
运行结果
true