当前位置: 首页 > news >正文

js---深拷贝函数

在js中,函数也属于对象,如果直接对函数进行赋值拷贝,那么拷贝的只是该函数在内存的地址(指针),拷贝后的函数与源函数其实表示的是同一个函数,会互相影响。

所以如果需要对函数进行拷贝,要求拷贝后的函数与源函数互不影响。就需要进行函数的深拷贝

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

    //深拷贝函数
    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)
    }

相关文章:

  • ElasticSearch linux上重启
  • elasticsearch object、nested类型对比
  • 词法、语法、语义分析编译原理设计
  • mybatis的小于号<的转义
  • IC Compiler指南——布图规划(一)
  • 债券行情查询接口
  • Flask 学习-28.flask_jwt_extended插件 JWT 中存储额外数据(additional_claims)
  • Unity 场景光照出现问题
  • SpringCloud Feign报错Method has too many Body parameters
  • 如何让GPU加速20倍?AI数据平台是关键!
  • 通达OA系统,MYOA中OfficeRedis启动不了
  • ‘scp‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  • Kubernetes中gRPC的服务发现
  • 基于后退走廊的轨迹优化方法(Bubble Planner)
  • Golang并发模式
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • C++类的相互关联
  • C学习-枚举(九)
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • js对象的深浅拷贝
  • JS题目及答案整理
  • Less 日常用法
  • PAT A1120
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • React-redux的原理以及使用
  • SpiderData 2019年2月13日 DApp数据排行榜
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 成为一名优秀的Developer的书单
  • 从输入URL到页面加载发生了什么
  • 从伪并行的 Python 多线程说起
  • 反思总结然后整装待发
  • 猴子数据域名防封接口降低小说被封的风险
  • 简析gRPC client 连接管理
  • 将回调地狱按在地上摩擦的Promise
  • 十年未变!安全,谁之责?(下)
  • 使用parted解决大于2T的磁盘分区
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 移动端解决方案学习记录
  • 阿里云ACE认证之理解CDN技术
  • 积累各种好的链接
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​Python 3 新特性:类型注解
  • #图像处理
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • (轉)JSON.stringify 语法实例讲解