首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

求大神们赐教js cookie对象有关问题

2013-12-13 
求大神们赐教jscookie对象问题在C++中,有一种东西叫操作符重载,这里完全可以理解为赋值符号“”被重载了。好

求大神们赐教js cookie对象问题



在C++中,有一种东西叫操作符重载,这里完全可以理解为赋值符号“=”被重载了。

好吧,你要是说这里是js,不用操作符重载的概念解释也ok。

在javascript 1.8版本中(不好意思,不知道是不是1.8,反正最新的就是),有一种东西叫属性的setter和getter,其中的setter就是用来处理属性的赋值操作的。

新版中,object可以写成这样:

var obj = {
  get a(){ return 1;},
  set a(){ }
};
console.log(a);


我们来构造一个和cookie属性一样神奇的属性。

var obj = (function(){
  var data = {};
  return {
    set cookie(c){
       c = c.split('=');
       if(c[0] && c[1]) {
          data[c[0]] = c[1];
       }
    },
    get cookie(){
       var r = [];
       for(var i in data) {
           r.push(i+'='+data[i]);
       }
       return r.join(';');
    }
  }
})();

obj.cookie = "sid=fdsafasf";
obj.cookie = "lang=zh-cn";
console.log(obj.cookie)://sid=fdsafasf;lang=zh-cn


这里只是简单的模仿了document.cookie的运作方法。
LZ的疑惑关键在于这个赋值号,其实这个符号和普通的变量的赋值不一样,它在引擎内部被重载了,实际运行了某个方法。

请在最新的chrome中测试以上代码。

热点排行