猿问

jquery.data 就是在一个全局对象上存取数据?

jquery.data的方法根本原理,就是在一个全局的对象里面进行数据的存储是吗?

动漫人物
浏览 503回答 1
1回答

千巷猫影

jQuery 1.x版本中是这么处理的,附加给DOM的data被存储到jQuery.cache对象中,获取$(el).data('a')的时候先查找el[jQuery.expando]的值,使用这个值作为key从jQuery.cache对象中查找value,返回值就是与该DOM元素关联的data对象,最终获取路径则为jQuery.cache[el[jQuery.expando]].data['a']之所以要这么做是因为IE8下把一个引用对象附加给DOM,再把该DOM移除后那个附加上来的对象就无法被释放了,从而造成内存泄漏。现代浏览器中不会出现这种现象,所以从jQuery 2.x及之后的版本中不再这么处理data了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答