首页 > Web开发 > 详细

模仿jquery的data

时间:2016-05-29 15:03:38      阅读:272      评论:0      收藏:0      [点我收藏+]

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

原文:http://www.cnblogs.com/Iqiaoxun/p/5539393.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!