jQuery expando属性
我对jQuery expando属性有疑问。 基本上我想用非常简单的术语来理解:
- 整个过程如何工作,就像jQuery如何添加expando属性一样,
- 将它添加到任何元素的标准是什么
- 使jQuery轻量化的确切原因是什么?
- jQuery缓存到底有什么作用?
问题3似乎不合适,但其余部分:
-
jQuery.expando
是一个字符串,基本上是'jQuery' + uniqueid
(只是一个唯一值)
在1.4.4版之前,uniqueid是current timestamp
。
在版本1.5.1之后,uniqueid是version+Math.random()
,替换了点。 要清楚, "jQuery" + ( version + Math.random() ).replace( /\D/g, "" )
。
-
jQuery.cache
是一个存储数据值的对象 -
Element[ jQuery.expando ]
是一个int值/ key,它是对象存储在jQuery.cache
-
jQuery.cache[ Element[ jQuery.expando ] ]
是该元素数据道具的对象