《JavaScript启示录》——1.19 验证对象是否是特定构造函数的实例

简介: 原始值使用对象包装器,判断实例时(如 'foo' instanceof String //返回false),instanceof操作符将返回false。如果使用new操作符创建字符串 'foo',instanceof操作符会返回true。

本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.19节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.19 验证对象是否是特定构造函数的实例

通过使用instanceof操作符,可以确定(true或false)一个对象是否是特定构造函数的实例。

如下代码,要验证的是InstanceOfCustomObject对象是否是CustomConstructor构造函数的实例。它适用于用户自定义对象,同时也适用于用new操作符创建的原生对象。

<!DOCTYPE html><html lang="en"><body><script>

// 用户自定义对象构造函数
var CustomConstructor = function () { this.foo = 'bar'; };

// 初始化CustomConstructor的实例
var instanceOfCustomObject = new CustomConstructor();
// 输出true
console.log(instanceOfCustomObject instanceof CustomConstructor); 

// 原生对象亦是如此
console.log(new Array('foo') instanceof Array) // 输出true

</script></body></html>

注意

  • 使用instanceof操作符时需要注意的一件事情是,任何时间判断一个对象是否是Object的实例时,它都将返回true,因为所有对象都继承自Object()构造函数。
  • 原始值使用对象包装器,判断实例时(如 'foo' instanceof String //返回false),instanceof操作符将返回false。如果使用new操作符创建字符串 'foo',instanceof操作符会返回true。所以,请记住,instanceof只适用于构造函数创建返回的复杂对象和实例。
相关文章
|
2月前
|
JavaScript 前端开发
JavaScript遍历数组和对象常用方法总结
以上代码展示了数组和对象的多种遍历方法。对于数组,使用了传统的 `for` 循环、`for...in` 和 ES6 的 `for...of` 进行遍历;对于对象,则通过 `for...in`、`Object.keys()`、`Object.values()` 和 `Object.entries()` 来获取键值对。`for...of` 循环适用于遍历具有迭代协议的数据结构,如数组、字符串等,而对象遍历则更多地依赖于 `Object` 方法来获取其属性集合。
JavaScript遍历数组和对象常用方法总结
|
1月前
|
移动开发 JavaScript 前端开发
JavaScript:验证输入
【9月更文挑战第02天】
35 6
|
2月前
|
JavaScript 前端开发 索引
JS遍历数组里数组下的对象,根据数组中对象的某些值,组合成新的数组对象
这篇文章介绍了如何在JavaScript中遍历数组里数组下的对象,并根据对象的某些属性值组合成一个新的数组对象。主要内容包括使用ES6的`for...of`循环来遍历数组对象,然后根据需要提取对象中的属性值,并将它们放入新的对象中,最终形成一个新的对象数组以供使用。
|
3天前
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
10 3
|
9天前
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-构造函数(也称为"类")定义
本文介绍了JavaScript中构造函数(也称为“类”)的定义和使用方法。
26 1
JavaScript基础知识-构造函数(也称为"类")定义
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-枚举对象中的属性
关于JavaScript基础知识中如何枚举对象属性的介绍。
27 1
JavaScript基础知识-枚举对象中的属性
|
17天前
|
JavaScript 前端开发 API
JavaScript 验证 API
JavaScript 验证 API
18 2
|
23天前
|
JavaScript 前端开发
JavaScript Boolean(布尔) 对象
Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。
29 8
|
5天前
|
存储 JavaScript 前端开发
JavaScript Number 对象
JavaScript Number 对象
10 0