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

自定义call方法和apply方法

 自定义call方法

    //Fn:要执行的函数,obj:函数中this的指向,args:剩余参数
      function call(Fn, obj, ...args) {
        //判断
        if (obj === undefined || obj === null) {
          obj = globalThis; //全局对象 globalThis:es11新增的特性,用来指向全局对象
        }

        //为 obj 添加临时的方法
        //因为temp和Fn一样,所以通过obj.temp()执行时,函数中的this指向obj
        obj.temp = Fn;
        //通过obj.temp()调用函数,所以this指向obj对象
        let result = obj.temp(...args);
        //在删除
        delete obj.temp;
        //返回执行的结果
        return result;
      }

自定义apply方法

      function apply(Fn, obj, ...args) {
        //如果obj为undefined或者null,obj对象赋值为globalThis
        if (obj === undefined || obj === null) {
          obj = globalThis;
        }
        //为obj添加临时方法
        obj.item = Fn;
        //执行方法
        let reulst = obj.itemargs);
        //删除属性
        delete obj.item;
        //返回结果
        return result;
      }


http://www.kler.cn/a/395483.html

相关文章:

  • see的本质是什么?
  • linux病毒编写+vim shell编程
  • 论文精读(笔记)
  • C++ —— 哈希详解 - 开散列与闭散列
  • uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别
  • 【云原生系列--Longhorn的部署】
  • element plus的表格内容自动滚动
  • 基于ChatGPT 的人工智能代理挖掘化学文献的演变探索
  • 4.远程访问及控制
  • Pandas数据透视表:交叉分析与聚合计算
  • 民锋科技量化模型助力衍生品市场的智能化决策
  • 智谱AI清影升级:引领AI视频进入音效新时代
  • 力扣.15 三数之和 three-sum
  • 英语每日一句
  • 【3D Slicer】的小白入门使用指南一
  • 无人机遥控器基础讲解——CKESC电调小课堂08
  • 【计算机网络】设备如何监听 ARP 请求广播
  • 本地部署Apache Answer搭建高效的知识型社区并一键发布到公网流程
  • WebRTC实现双端音视频聊天(Vue3 + SpringBoot)
  • 创建游戏云存档功能的完整指南
  • 2025年开考科目有哪些?
  • PostgreSQL 批量执行脚本
  • 用OMS进行 OceanBase 租户间数据迁移的测评
  • 【复盘笔记】国考25一期_套题8
  • 【UGUI】Unity 游戏开发:背包系统初始化道具教程
  • Android系统设置页面更改语言 权限 主题导致app崩溃