模仿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的更多相关文章
- Ajax学习(二):模仿jQuery的Ajax封装工具
		
通过上一节的学习,基本了解Ajax的使用, 但是这样使用很麻烦,这里封装ajax为一个方法,作为一个ajax工具,传入相应参数就可以实现ajax的使用. 模仿jQuery的Ajax. 如下是jQuer ...
 - 模仿JQuery封装ajax功能
		
需求分析 因为有时候想提高性能,只需要一个ajax函数,不想引入较大的jq文件,尝试过axios,可是get方法不支持多层嵌套的json,post方式后台接收方式似乎要变..也许是我不太会用吧..其实 ...
 - HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
		
人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副 ...
 - jQuery 中 data 方法的实现原理
		
前言:jQuery 作为前端使用最多最广泛的 JS 库,其源码每个 JSer 都应该研究一下.早就打算看却一直被各种事拖着,上次某公司面试时被问到 jQuery 中 data 方法是如何实现的,结果答 ...
 - html5的自定义data-*属性和jquery的data()方法的使用示例
		
人们总喜欢往HTML标签上添加自定义属性来存储和操作数据. 但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它 ...
 - js模仿jquery里的几个方法parent, parentUntil, children
		
有时工作需要, 也是接着上一章的方法, 用js模仿jquery里的几个方法parent, parentUntil, children. function parent(node){ return no ...
 - jQuery 的.data()方法
		
jQuery文档对.data()方法的描述: As of jQuery 1.4.3 HTML 5 data- attributes will be automatically pulled in to ...
 - html5的自定义data-*属性与jquery的data()方法的使用
		
人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副 ...
 - html5的自定义data-*属性和jquery的data()方法的使用
		
人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副 ...
 
随机推荐
- php中签名公钥、私钥(SHA1withRSA签名)以及AES(AES/ECB/PKCS5Padding)加密解密详解
			
由于http请求是无状态,所以我们不知道请求方到底是谁.于是就诞生了签名,接收方和请求方协商一种签名方式进行验证,来取得互相信任,进行下一步业务逻辑交流. 其中签名用得很多的就是公钥私钥,用私钥签名, ...
 - win7 设置docker加速器
			
本来专门已经有了一个源于docker加速器的了,公司的电脑是mac,配置很简单,但是我自己的电脑是win7,在实际操作的时候还真是累啊,官网的教程不知道为什么没起效果,所以最终还是找了其他人发的帖,可 ...
 - js 的常用方法和对象
			
每日分享: 加油!你一定可以!你是最牛逼的!!!-------------------------------------------------------------------------- - ...
 - Linux环境部署安装Maven
			
第一步:Maven下载 1. 手动下载 访问官网:http://maven.apache.org/download.cgi 当前最新版本是3.6.0,如果想下载其他版本 可通过点击下图选中项进入历史更 ...
 - six
			
团队序号:6组 团队名称:拯救地球小分队 团队项目的码云地址:https://gitee.com/lwj5950/seflash 此次博客撰写人姓名:刘威骏 学号:2017*****7168 团队中的 ...
 - flask开发笔记
			
目录 虚拟环境 Debug模式 配置文件 url传入参数 url反转 重定义向 模板 创建 jinjia2语法 模板继承 flash 加载静态文件 MySQL数据库命令 配置 更新.提交.删除 模型操 ...
 - [转] Citrix XenDesktop桌面登录VM提示Citrix Web插件错误
			
[From] http://blog.51cto.com/xuhaili100love/1223707 [适用版本] 适用所有Citrix虚拟桌面版本 [现象描述] 使用SC登录虚拟机提示“无法访问您 ...
 - 后缀自动机 && 题目
			
因为明天要讲解后缀自动机了,所以只能抱抱佛脚,临时做做题目.其实很久以前看过,但是不太懂,看的是clj的原文,不太懂.现在只能临时看看是怎么弄的,应付下. ---------------------- ...
 - html5实现判断拍照旋转角度等功能
			
https://www.aliyun.com/jiaocheng/857189.html base64图片编码上传,判断图片是否有旋转,若有旋转修正图片并保存至阿里 http://code.c ...
 - Asp.Net  webconfig中使用configSections的用法
			
最近闲来无事,研究研究公司的框架,无意中打开了webconfig页面,发现了一个我不认识的节点<configSections></configSections>,于是百度之,大 ...