jQuery - 为什么用字符串创建对象($('<div class ="foo"/>'))比创建相同的对象和执行addClass()方法慢?

Krz*_*ski 6 jquery class append jsperf

任何人都可以解释为什么通过字符串创建对象比同一个对象慢,并在jQuery中执行addClass()方法?

我认为addClass()方法会慢一点,但事实并非如此.我想知道为什么?

看看这个jsPerf - http://jsperf.com/jquery-append-with-class-and-with-method-addclass

Fré*_*idi 4

这是因为仅传递元素名称(例如 )会映射到对document.createElement()$("<div>")的调用。

另一方面,传递元素及其属性(例如 )会映射到对document.createDocumentFragment()$("<div class='foo'>")的调用,这比随后写入属性要慢。createElement()className