为了实现一个函数 clone ,可以对 JavaScript 中 5 种主要的数据类型 (包括 Number、 St「ing 、 Object、 A「「ay、 Boolean )进行值(深)复制。

代码:

      function clone(obj) {
        var buf
        if (obj instanceof Array) {
          var i = obj.length
          buf = [] // 向空的数组中复制内容
          while (i--) {
            buf[i] = clone(obj[i])
          }
          return buf
        } else if (obj instanceof Object) {
          buf = {} // 向空的对象中复制内容
          for (var k in obj) {
            buf[k] = clone(obj[k])
          }
          return buf
        } else {
          // 值类型直接返回
          return (buf = obj)
        }
      }
      // 测试
      var arr = [1, { a: 100 }, null]
      var obj = { a: 100, b: true, c: { d: 'Hello' } }
      var num = 200
      console.log(clone(arr))
      console.log(clone(obj))
      console.log(clone(num))

原文地址:https://www.cnblogs.com/cqkjxxxx/p/13307286.html