五、数据缓存Data5——jQuery.hasData(elem)
方法jQuery.hasData(elem)用于判断一个DOM元素或JavaScript对象是否又与之相关联的数据。如果没有与之关联的数据(没有数据缓存对象或是空数据对象),则返回false,否则返回。
方法jQuery.hasData(elem)的主要优势在于,如果不存在关联的数据缓存对象,则不会创建并关联一个数据缓存对象。与此相反,方法jQuery.data(elem)则会返回一个数据缓存对象给调用者,如果不存在则创建一个。
// 代码行:4004——4158 function Data() { // 设定唯一标识 this.expando = jQuery.expando + Data.uid++; } Data.uid = 1; Data.prototype = { // 代码行:4151——4154 hasData: function( owner ) { // 获取DOM元素或JavaScript对象关联的数据缓存对象。 var cache = owner[ this.expando ]; // 如果关联的数据缓存对象存在,并且含有数据,则返回true,否则返回false return cache !== undefined && !jQuery.isEmptyObject( cache ); } }; var dataPriv = new Data(); var dataUser = new Data(); jQuery.extend( { // 代码行:4224——4226 hasData: function( elem ) { return dataUser.hasData( elem ) || dataPriv.hasData( elem ); }, } );

浙公网安备 33010602011771号