资讯专栏INFORMATION COLUMN

细说 Javascript 类型篇(三) : instanceof 操作符

tylin / 1383人阅读

摘要:的操作符可以用来比较两个操作数的构造函数。这是因为它们的构造函数不可能会是同一个对象。总结综上所述,我们知道操作符最合适的使用坏境是比较两个相同上下文背景下的自定义对象的构造函数,正如上篇介绍的操作符,其他坏境下使用作用不大。

Javascriptinstanceof 操作符可以用来比较两个操作数的构造函数 constructor。但这个只有在比较自定义对象才有意义。当用来比较 Javascript 内置的对象时就如同上篇介绍的操作符 typeof 一样用处不大。

比较自定义对象
function Foo() {}
function Bar() {}
Bar.prototype = new Foo();

new Bar() instanceof Bar; // true
new Bar() instanceof Foo; // true

// This just sets Bar.prototype to the function object Foo,
// but not to an actual instance of Foo
Bar.prototype = Foo;
new Bar() instanceof Foo; // false
比较内置对象
new String("foo") instanceof String; // true
new String("foo") instanceof Object; // true

"foo" instanceof String; // false
"foo" instanceof Object; // false

这里有点特别重要的地方需要注意,那就是 instanceof 操作符无法比较两个处于完全不同上下文坏境下的对象(例如浏览器中的不同文档对象)。这是因为它们的构造函数不可能会是同一个对象。

总结

综上所述,我们知道 instanceof 操作符最合适的使用坏境是比较两个相同上下文背景下的自定义对象的构造函数,正如上篇介绍的 typeof 操作符,其他坏境下使用作用不大。

  

@nightire 凡哥的博文 - 《理解 JavaScript(三)》 也介绍了部分关于 instanceof 操作符的使用。

参考

http://bonsaiden.github.io/JavaScript-Garden/#types.instanceof

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78101.html

相关文章

  • 细说 Javascript 类型(二) : typeof 作符

    摘要:操作符还有可能是设计中最大缺陷,因为它几乎是完全破损的。由于用法与调用函数的语法相似,因此常被误以为是函数调用,实际上并不存在名为的函数,只是一个操作符而已。而列则表示对象内部的属性。属性文档中明确地给出了获得属性的途径,就是使用。 typeof 操作符(还有 instanceof)可能是 Javascript 设计中最大缺陷,因为它几乎是完全破损的。由于 typeof 用法与调用函数...

    PAMPANG 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    Lyux 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    AaronYuan 评论0 收藏0
  • 细说 Javascript 类型(四) : 类型转换

    摘要:因为是弱类型语言,所以它会在任何可能的情形下对变量进行强制类型转换。内置类型的构造函数调用内置类型的构造函数时,是否使用关键字将表现得大不相同。传递字面值或非对象值也会造成强制类型转换的现象。最好的方法就是显示地将值转换为,或三种类型之一。 因为 Javascript 是弱类型语言,所以它会在任何可能的情形下对变量进行强制类型转换。 // These are true new Num...

    chengtao1633 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<