zoukankan      html  css  js  c++  java
  • clone:克隆数据,可深度克隆

    这里列出了原始类型,时间、正则、错误、数组、对象的克隆规则,其他的可自行补充

    function clone(value, deep){    
      if(isPrimitive(value)){

        return value

      }

      if (isArrayLike(value)) { //是类数组

        value = Array.prototype.slice.call(value)

        return value.map(item => deep ? clone(item, deep) : item)

      }else if(isPlainObject(value)){ //是对象

        let target = {}, key;

        for (key in value) {

          value.hasOwnProperty(key) && ( target[key] = deep ? clone(value[key], deep) : value[key] )

        }

      }

      let type = getRawType(value)

        switch(type){

          case 'Date':

          case 'RegExp':

          case 'Error': value = new window[type](value);
        break;

      }

      return value
    }
  • 相关阅读:
    构造函数和析构函数
    关联[2]
    关联模型[1]
    auth 权限控制
    多语言设置
    文件上传
    验证码
    图像处理
    Session 与 Cookie
    控制器[3]
  • 原文地址:https://www.cnblogs.com/EternalZH/p/12213739.html
Copyright © 2011-2022 走看看