视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
web开发中怎样检测引用值
2020-11-27 19:41:26 责编:小采
文档


这次给大家带来web开发中怎样检测引用值,web开发中检测引用值的注意事项有哪些,下面就是实战案例,一起来看一下。

引用值也称作对象(object)。在JS中除了原始值之外的值都是引用。有这样几种内置的引用类型:Object、Array、Date和Error,数量不多。typeof运算符在判断这些引用类型时显得力不从心,因为所有对象都会返回"object"。

typeof另外一种不推荐的用法是当检测null的类型时,typeof运算符用于null时将全返回"object"。这看上去很怪异,被认为是标准规范的严重bug,因此在编程时要杜绝使用typeof来检测null的类型。

检测某个引用值的类型的最好方法是使用instanceof运算符。instanceof的基本语法是:value instanceof constructor。

instanceof的一个有意思的特性是它不仅检测构造这个对象的构造器,还检测原型链。原型链包含了很多信息,包括定义对象所采用的继承模式。比如,默认情况下,每个对象都继承自Object,因此每个对象的value instanceof Object都会返回true。因为这个原因,使用value instanceof Object来判断对象是否属于某个特定类型的做法并非最佳。

instanceof运算符也可以检测自定义的类型,比如:

function Person (name) { this.name = name;
}var me = new Person('Nicholas');console.log(me instanceof Object); // trueconsole.log(me instanceof Person); // true

在JS中检测自定义类型时,最好的做法就是使用instanceof运算符,这也是唯一的方法。同样对于内置JS类型也是如此(使用instanceof运算符)。但是,有一个严重的。

假设一个浏览器帧(frameA)里的一个对象被传入到另一个帧(frameB)中。两个帧里都定义了构造函数Person。如果来自帧A的对象是帧A的Person的实例,则如下规则成立。

frameAPersonInstance instanceof frameAPerson; // trueframeAPersonInstance instanceof frameBPerson; // false

因为每个帧(frame)都拥有Person的一份拷贝,它被认为是该帧(frame)中的Person的拷贝实例,尽管两个定义可能完全一样的。这个问题不仅出现在自定义类型身上,其他两个非常重要的内置类型也有这个问题:函数和数组。对于这两个类型来说,一般用不着使用instanceof。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

web开发中怎样检测原始值

怎样利用JS做出引用传递与值传递

下载本文
显示全文
专题