课程
/前端开发
/jQuery
/jQuery源码解析(架构与依赖模块)
比如
var body1 = $("body")
var body2 = $("body")
他们的uid都是jQuery191019618577925292002这个缓存池中的3号位置,这是为什么
2017-01-16
源自:jQuery源码解析(架构与依赖模块) 4-6
正在回答
相同的DOM元素或DOM对象,jquery源码中$().data()代码,有elem = this[ 0 ],elem为DOM元素,两次为相同的对象,uid相同,缓存区相同,因此会被覆盖。而$.data()代码中,elem是jQuery的实例对象,不同的实例对象,分配了不同的缓存区,$.data()不覆盖。
是DOM元素,通过分配一个唯一的关联id把DOM元素和该DOM元素的数据缓存对象关联起来,关联id被附加到以jQuery.expando的值命名的属性上,数据存储在全局缓存对象jQuery.cache中。在读取、设置、移除数据时,将通过关联id从全局缓存对象jQuery.cache中找到关联的数据缓存对象,然后在数据缓存对象上执行读取、设置、移除操作。
举报
由浅入深地剖析jQuery库的设计与实现,揭开框架背后的秘密
2 回答选择器选择ID不是只有一个的吗?用[0]和不用[0]一样呀,有什么意义吗
1 回答jQuery对象和aQuery对象的区别问题
3 回答关于Cache对象和uid
2 回答jQuery对象与aQuery对象的差别与原因?
3 回答我不明白window.$ === jQuery这里边的jQuery是什么呢