美文网首页
js deepcopy

js deepcopy

作者: ShallLi | 来源:发表于2015-10-07 21:47 被阅读0次

    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>
    
    

    相关文章

      网友评论

          本文标题:js deepcopy

          本文链接:https://www.haomeiwen.com/subject/uqkncttx.html