zoukankan      html  css  js  c++  java
  • JQuery源码解读 JQ Data函数( 妙味讲堂

    JQuery源码解读
    
    
    
    JQ的data( 妙味讲堂 - 视频笔记 - 第六部分)
    
    
    1、
    $("div").attr("name", "hello");
    console.log($("div").attr("name")); //hello
    =>
    
    document.getElementsById("div").setAttribute("name","hello");
    document.getElementsById("div").getAttribute("name");
    
    
    
    
    
    2、
    $("div").prop("name", "hello");
    
    console.log($("div").prop("name")); //hello
    
    document.getElementsById("div")["name"] = "hello"
    document.getElementsById("div").getAttribute("name");
    
    
    
    
    
    3、数据缓存(挂载大量数据)
    $("div").data("name", "hello");
    
    console.log($("div").data("name")); //hello
    
    
    
    DOM对象与元素之间互相引用,大量浏览器会出现内存泄漏
    
    var oDiv =  document.getElementsById("div1");
    
    var obj = {};
    
    oDiv.name  = obj;
    
    obj.name = oDiv;
    
    
    
    $("#div1").attr("name",obj);
    
    $("#div1").data("name",obj);
    可以防止DOM对象与元素的互相引用,从而避免内存泄漏。
    
    
    使用cache对象保存属性值,当属性要赋值的时候直接在cache里读取数据,
    
    
    function Data(){
    	Object.defineProperty(this.cache = {},0,{
             get:function(){
             	return {}
             }
    		})
    	this.expando  = jQuery.expando+Math.random();
    }
    
    
    Data.prototype = {
    	key:{
    
    	}
    	get:function(){
    
    	}
    	access:function(){
    
    	}
    	remove:function(){
    
    	}
    	hasData:function(){
    
    	}
    	discard:function(){
    
    	}
    }
    	
    

      

  • 相关阅读:
    HTML5 拖放(Drag 和 Drop)详解与实例
    JS中的六大数据类型
    关于创建本地docker仓库
    关于使用国内dock仓库,网易、DaoCloud
    关于Docker开通远程访问端口2375
    多个消费者监听同一个队列
    SQLite -附加数据库
    解密JDK8 枚举
    LoraLU
    深入理解display属性
  • 原文地址:https://www.cnblogs.com/SunlikeLWL/p/11817241.html
Copyright © 2011-2022 走看看