您的当前位置:首页正文

js---深拷贝函数

2024-11-18 来源:个人技术集锦

 下面是我自己封装的一个深拷贝函数:

    //深拷贝函数
    function cloneFunction(fn) {
      //参数验证
      if (!(fn && fn instanceof Function)) {
        throw new Error("参数为必须并且参数类型为函数")
      }
      // 将函数转成字符串
      let str = fn.toString()
      //截取函数体内容字符串
      let subStr = str.substring(str.indexOf("{") + 1, str.lastIndexOf("}"))
      // 利用截取函数体内容的字符串和函数的构造器生成新的函数并返回
      return new Function(subStr)
    }

Top