js deepcopy

2015-10-07  本文已影响0人  ShallLi

title: javaScript_Design
date: 2015-10-07 21:14:59
tags:


原型模式

文字方式

拟物化

袋鼠和袋鼠崽子

作用
1.原型对象本身就是有效利用了每个构造创建的对象
注意事项:
1.注意浅拷贝和深拷贝

代码实战

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  <script type="text/javascript">
  //原型
  var myobj = {
      str: "mysting",
      num: 1,
      myarr: [],
      myobj: {
          innerobj: {
              test: 25
          }
      }
  };
  function clone(obj){
      // var ret = {}, k;
      // for(k in obj){
      //     ret[k] = obj[k];
      //  }
      var ret, k, b;
      if((b = (obj instanceof Array))|| obj instanceof Object){
          console.log('init');
          ret = b?[]: {};
          for(k in obj){
              if(obje[k] instanceof Array || obj[k] instanceof Object){ret[k] = clone(obj[k]);}else{
                  ret[k] = obj[k];
              }

          }
      }

      return ret;
  }
  //浅拷贝
  var result = clone(myobj);
  result.myobj.innerobj[test] = 12;
  console.log(result);
  </script>

上一篇下一篇

猜你喜欢

热点阅读