jQuery expando properties
I have a question on jQuery expando properties. Basically I would like to understand in VERY simple terms:
- How this whole process works like how jQuery adds the expando property,
- what is the criteria to add it to any element
- What is the exact reason which makes jQuery lightweight 开发者_JAVA技巧
- What exactly does the jQuery cache have?
Question 3 seems out of place but for the rest:
jQuery.expando
is a string which is basically'jQuery' + uniqueid
(just a unique value)
Prior to version 1.4.4, the uniqueid is current timestamp
.
After that from version 1.5.1, the uniqueid is version+Math.random()
with dots replaced. To be clear, "jQuery" + ( version + Math.random() ).replace( /\D/g, "" )
.
jQuery.cache
is an object that will store the data valuesElement[ jQuery.expando ]
is a int value/key that is where the object is stored injQuery.cache
jQuery.cache[ Element[ jQuery.expando ] ]
is an object of that elements data props
精彩评论