js deepcopy

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


原型模式

文字方式

  • 原型模式(prototype)是指原型实例指向创建对象的种类,并且通过拷贝这些
    原型创建新对象。
    Object.create(prototype, OptionnalDes)

拟物化

袋鼠和袋鼠崽子

作用
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>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容