模仿jquery的data

Posted woqiaoxun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模仿jquery的data相关的知识,希望对你有一定的参考价值。

jquery中,有这个方法

   var obj = {};
$.data(obj,
\'name\',\'jake\'); console.info($.data(obj,\'name\')); console.info(obj);

输出结果

由此可知,$.data(),里面有三个参数时,是赋值的,里面有两个参数时是取值,一贯的jquery作风。

这里模仿一下

    var $data = (function(){
        var expando = \'jQuery\'+String(Math.random()).replace(/\\D/g, \'\');
        
        function getCache(cache){
            return cache[expando]=cache[expando]||{};
        }
        
        function setValue(obj,name,value){
            obj[name]=value;
        }
        
        function getValue(obj,name){
            return obj[name];
        }
        
        var data=function(cache,nameAgr,valueArg){
            var obj = getCache(cache);
            //    有第三个参数表示是赋值
            if(valueArg&&valueArg.length>0){
                setValue(obj,nameAgr,valueArg);
            }else{//没有第三个参数表示是取值
                return getValue(obj,nameAgr);
            }
        }
        return data;
    })();
    
    var obj2 = {};
    
    $data(obj2,\'name\',\'jake\');
    $data(obj2,\'age\',\'12\');
    
    console.log($data(obj2,\'name\'));
    
    console.log(obj2);

结果

 

就模仿了这两个方法。

原文

http://www.cnblogs.com/ellisonDon/archive/2012/08/12/2635316.html

 

以上是关于模仿jquery的data的主要内容,如果未能解决你的问题,请参考以下文章

模仿jQuery的filter方法

jQuery-异步请求

简单的jquery模仿复选框全选全不选功能

Visual Studio 2012-2019的130多个jQuery代码片段。

jQuery应用 代码片段

模仿JQuery封装ajax功能