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>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容