r.serialize = function(a) {
    return String(a)
  };
  r.deserialize = function(a) {
    if (typeof a != "string") {
      return undefined
    }
    return a
  };这是两个自定义的串行化和反串行化函数,但是我不明白是什么意思。
串行化里面是实例化一个字符串吗?
反串行化方法里返回的不也是一个字符串吗?JavaScript函数串行化

解决方案 »

  1.   

    r是个对象,有两个方法属性,serialize和deserialize,都提供参数a
    serialize中a应该是对象object类型,把object转string.
    deserialize判断a 的类型是否是string,如果不是则返回未定义,反之返回a。可以去看一下javascript中的几大类型,string int undefined Nan object我记的这些,可以去百度下。
      

  2.   

    不要纠结方法的名字,串行化或者反串行化都跟你没关系。这只是一个改变变量类型的方法而已。<script type="text/javascript">
    var r={};//创建对象R
     r.m = function(a) {//给r对象定义方法m,接收1个参数
        return String(a)//返回这个参数将其变为字符串类型
      };
      r.n = function(a) {//给r对象定义方法m,接收1个参数
        if (typeof a != "string") {//若a不是字符串型
          return undefined//返回未定义
        }
        return a//这里表示a是字符串型
      };
    </script>
      

  3.   

    用来判断参数是否是字符串类型的啊!
    你这样。
    先传过去一个变量var a=5; 调用n,因为此时5是number类型,所以应该返回undefined.你可以把n返回值改成alert(unfined)
    之后调用m,这样5就变成了"5",
    最后调用n,这回的返回值就应该是"5"而不是undefined