我听说java中的instanceof运算符是一个性能问题,
是否也适用于Javascript(IE6,IE7,IE8,FF,Chrome,Safari等)? 任何真实文件的链接都会有所帮助。
我听说java中的instanceof运算符是一个性能问题,
是否也适用于Javascript(IE6,IE7,IE8,FF,Chrome,Safari等)? 任何真实文件的链接都会有所帮助。
简而言之:它似乎取决于浏览器。
更详细: 我找到了这个JSPerf测试: http://jsperf.com/instanceof-performance/2 比较JavaScript instanceof检查与对象中现有/缺少属性的布尔检查。
整体结果(谨防少量样本)是Chrome中的结果 这两种方法都具有相似的优点。但是,在FF中,属性检查比instanceof运算符更快。 2017年4月更新:正如@ngryman指出的那样:在最近的FF和Chrome版本中,进行财产检查似乎比instenaceof快得多。
扩展该测试会很有趣,例如检查字符串比较是否类似 obj.type == 'MyClass'
对这个问题有很强的影响力。
我自己并不担心instanceof运算符的性能,因为JavaScript本身很少是性能问题的原因。 DOM操作通常需要更多时间。但是,如果你需要在一个繁重的使用循环中使用instanceof,我建议使用FireBug profiler对其进行分析。
对Java来说不再适用 - 看这里。
至于Javascript,我找不到任何讨论这个问题的文章,但我非常怀疑instanceof会导致任何性能问题。如果你需要使用它,我会说它去做,然后只有在你遇到性能问题时才重新考虑。
您可以很容易地使自己的JavaScript基准类似于 这个 从Kaleb的链接链接。