Larkin - JS Copy

Javascript 对象富有太多的灵活性,稍不留神我们将造成严重错误,难以捉摸。对象赋值就是其中一重点。

首先我们来看copy

1 function copy(o) {
2     var c = {};
3     for (var i in o) { 
4         c[i] = o[i];
5     }
6     c.old = o;
7     return c;
8 }

这是一个基本copy,但是并没有copy属性对象。

比较合理的copy,如下:

function dcopy(o, c) {
    var c = c || {};
    for (var i in o) {
      if (tyoeof o[i] === 'object') {
        c[i] = (o[i].constructor === Array) ? [] : {};
        dcopy(o[i], c[i]);
      } else {
         c[i] = o[i];
      }
    }
    return c;
  }

此copy方法完全复制old object。

posted @ 2017-12-08 17:46  黄开金  阅读(143)  评论(0)    收藏  举报