在javascript中使用instanceof运算符是一个性能问题?

Sal*_*cis 11 javascript browser optimization performance

我听说java中的instanceof运算符是一个性能问题,

是否也适用于Javascript(IE6,IE7,IE8,FF,Chrome,Safari等)?任何真实文件的链接都会有所帮助.

Chr*_*ken 14

简而言之:它似乎取决于浏览器.

更详细:我发现了这个JSPerf测试:http://jsperf.com/instanceof-performance/2 比较JavaScript实例检查与对象中现有/缺失属性的布尔检查.

整体结果(谨防少量样本)是在Chrome中两种方法都具有相同的优点.但是,在FF中,属性检查比instanceof运算符更快.2017年4月更新:正如@ngryman指出的那样:在最近的FF和Chrome版本中,进行财产检查似乎比instenaceof快得多.

将测试延伸到像检查字符串比较obj.type == 'MyClass'是否会对主题产生强烈影响这样的情况会很有趣.

  • 2017年在Chrome中,财产检查更快. (2认同)

Kal*_*see -1

对于 Java 来说,情况不再如此——请参阅此处

至于Javascript,我找不到任何讨论这个问题的文章,但我非常怀疑instanceof会导致任何性能问题。如果您需要使用它,我会建议您使用它,然后仅在遇到性能问题时才重新考虑。