模仿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

时间: 2024-10-31 01:02:43

模仿jquery的data的相关文章

Ajax学习(二):模仿jQuery的Ajax封装工具

通过上一节的学习,基本了解Ajax的使用, 但是这样使用很麻烦,这里封装ajax为一个方法,作为一个ajax工具,传入相应参数就可以实现ajax的使用. 模仿jQuery的Ajax. 如下是jQuery的Ajax使用,只需要传入相应参数,即可实现Ajax 第一步:创建Ajax工具类: function createXMLRequst(){ try{ return new XMLHttpRequest(); }catch(e) { try{ return new ActiveXObject("Ms

使用jQuery的data方法来为页面中的某个元素存储数据,(获取焦点,清除默认值)

使用data方法可以避免在DOM中存储数据,有些前端开发er喜欢使用HTML的属性来存储数据: 使用”alt”属性来作为参数名存储数据其实对于HTML来说是不符合语义的. 我们可以使用jQuery的data方法来为页面中的某个元素存储数据: html部分: 1 <form id="testform"> 2 <input type="text" class="clear" value="Always cleared&qu

javascript之模仿jQuery实现框架雏形

JQuery是如此的强大,所以我决定模仿jQuery造一个轮子,边造轮子边学习jQuery是如何利用各种技巧实现那些非常强大的功能的.既然是模仿jQuery,我决定将新的框架命名为jqc,jQuery copy之意.那么接下来让我们从零实现一个框架的雏形吧,如有谬误有劳告知. 沙箱模式 在一切的开始,我们需要定义一个沙箱来将我们的所有代码放在里面,只留部分接口供外部调用.在沙箱内的所有变量都属于局部变量,不会污染全局变量环境. (function(window,undefined){ var j

jquery的data()函数和html5的data属性

jquery的data()函数和html5的data属性:在html5中新增了一个自定义data属性,利用这个属性,可以添加任意的以"data-"开头的属性,这些属性不会再页面上显示,也不会影响任何原有的布局效果,并且此自定义属性是可读写的,例如: <div id="thediv" data-webname="蚂蚁部落">蚂蚁部落欢迎您</div> 以上代码就是使用自定义data属性的一个简单例子.可以使用jquery的d

jQuery.data() 与 jQuery(elem).data()源码解读

之前一直以为 jQuery(elem).data()是在内部调用了 jQuery.data(),看了代码后发现不是.但是这两个还是需要放在一起看,因为它们内部都使用了jQuery的数据缓存机制.好吧,重点就是data_user对象,跟另一个data_priv是姐妹~~ 先来看下jQuery.data(): 它调用了data_user.access( elem, name, data ); 那么data_user到底是什么鬼呢?? 我们看到,它是由Data构造的实例,Data构造器都做了一些什么呢

jQuery 中 data 方法的实现原理

前言:jQuery 作为前端使用最多最广泛的 JS 库,其源码每个 JSer 都应该研究一下.早就打算看却一直被各种事拖着,上次某公司面试时被问到 jQuery 中 data 方法是如何实现的,结果答不上来懊悔不已.现在终于下决心开始看 jQuery 的源码,就从 data 方法开始.本人也是前端新手,如果文章中有理解不当或者错误之处,欢迎留言指出,3Q~ jQuery 版本为 1.8.2 data() 的使用方法 // 向一个 dom 元素绑定数据 $("#header").data

html5的自定义data-*属性和jquery的data()方法的使用示例

人们总喜欢往HTML标签上添加自定义属性来存储和操作数据. 但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副作用. 这就是为什么在HTML5规范里增加了一个自定义data属性,你可以拿它做很多有用的事情. 你可以去读一下HTML5的详细规范,但这个自定义data属性的用法非常的简单,就是你可以往HTML标签上添加任意以 "data-"开头的属性,这些属性页面上是不显示的,它不会影响到你的页面布

jquery中data函数的用法示例

jquery中data() 方法向被选元素附加数据,或者从被选元素获取数据.这使我们通过HTML自定义属性,操作数据,显得非常方便.通常我们也会通过给html自定义属性这样的做法,来存储和操作数据.在jquery中也给我们 提供了data(name,value)这样的方法,来非常方便的实现.有了data()这个方法,你就可以很方便的在一个html标签中添加data-*这样的自定义属性.接下来,就data()方法简单的做下了解. 以下是摘自w3school中对data用法的说明: data方法从元

HTML 5 的自定义 data-* 属性和jquery的data()方法的使用

人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副作用.这就是为什么在HTML5规范里增加了一个自定义data属性,你可以拿它做很多有用的事情. 你可以去读一下HTML5的详细规范,但这个自定义data属性的用法非常的简单,就是你可以往HTML标签上添加任意以 "data-"开头的属性,这些属性页面上是不显示的,它不会影响到你的页面布局和