码迷,mamicode.com
首页 > 其他好文 > 详细

Cookie的封装

时间:2020-03-29 19:50:56      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:文件路径   数据   网站   记录   删除   array   inf   输入   ber   

Cookie是什么

      Cookie实际上是一小段的文本信息,客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。

Cookie的封装:

  function isObject( options ){
      return ( typeof options === "object" && options !== null && options.constructor && options.constructor === Object);
  }
  此方法为判断输入的实参是否为对象;
  function assign(){
      var target = arguments[0];
      for(var i = 1 ; i < arguments.length ; i ++){
          for(var attr in arguments[i]){
              target[attr] = arguments[i][attr];
          }
      }
      return target;
  }
  讲两个对象合并为一个对象,也常用于给对象赋值默认值。
 
  function cookie( name , value , options  ){
      // 此时参数大于一个,value 是一个字符串。 那么我们认为此时我们在设置cookie;
      if( arguments.length > 1 && typeof value === "string"){        //判断输入的实参有几个,当至少为2个且 value的类型为string类型时执行下面语句
          if(!isObject( options )){               //如果options不为对象,令options为空对象
              options = {};
          }
          if( typeof options.expires === "number"){        
              var d = new Date();                 //对象中 expires类型为number时,获取本地时间
              d.setDate( d.getDate() + options.expires );        //设置此Cookie存在的时间
          }
          return (document.cookie = [            //往cookie中存放信息: name value domain path expires
                  name + "=" + value,
                  typeof options.domain === "string" ? ";domain=" + options.domain : "",
                  typeof options.path === "string" ? ";path=" + options.path : "",
                  typeof options.expires === "number" ? ";expires=" + d : "",
          ].join(""));                    
      }
                            //当输入实参为一个时,就是获取cookie中name的value值
      var cookie_string = document.cookie;
      var cookie_array  = cookie_string.split("; ");
      for(var i = 0 ; i < cookie_array.length ; i ++){
          if( cookie_array[i].split("=")[0] === name ){
              return cookie_array[i].split("=")[1]
          }
      }
      return "";
  }

当输入三位实参时:

    cookie("name","value",{
          domain :"localhost",
          path   :"/PHP",
              expires: 10
         });
就是往cookie中存入name=value;domain :"localhost",path   :"/PHP",expires: 10
技术图片

当输入两位实参时:

   cookie("name","value");
就是往cookie中存入name=value数据而 domain是你的默认本地域名 path为你的本地文件路径 expires默认为 session 当关闭此浏览器再打开,此条cookie会自动删除。
技术图片

当输入一位实参时:

  console.log(cookie("name"));

就是获取cookie中的对应的name的value值

技术图片

 

 

Cookie的封装

标签:文件路径   数据   网站   记录   删除   array   inf   输入   ber   

原文地址:https://www.cnblogs.com/bblove/p/12594126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!