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

手写call,bind,apply

foo.Mycall(obj,1,2,3)
Function.prototype.Mycall=function(target,...args){if(typeof this!=='function'){throw new TypeError('this is not a function')}// 判断target是否是对象if(target==null||target==undefined){target=window}if(typeof target!=='object'){target=Object(target)}// 把this作为target的方法let key=new Symbol()target[key]=this;let res=target[key](...args)delete target[key]return res
}

apply和call差不多,都是直接返回函数执行的结果

区别:apply传入的参数是数组

foo.Myapply(obj,[1,2,3])Function.prototype.Myapply=function(target,args){if(typeof this!=='function'){throw new TypeError('this is not a function')} if(target==null||target===undefined){target=window}if(typeof target!=='object'){target=Object(target)}let key=new Symbol()target[key]=this;let res=target[key](...args)delete target[key]return res
}

bind:

Function.prototype.bind=function(context,...args){if(typeof this!=='function'){throw new Error('this is not a function')}if(context==null||context==undefined){context=window}if(context!=='object'){context=Object(context)}let key=new Symbol()context[key]=this;return function(...newargs){let res=context[key](...args,...newargs)delete context[key]return res}
}

http://www.xdnf.cn/news/702.html

相关文章:

  • 博客系统案例练习2-用户注册-redis
  • 1.69G 雨晨 26100.3909 Windows 11 IoT 企业版 LTSC 24H2 极简
  • ebpf: CO-RE, BTF, and Libbpf(三)
  • BurpSuite 1.4.07 详细使用指南:安装、配置与渗透测试实战
  • OpenCV 模板与多个对象匹配方法详解(继OpenCV 模板匹配方法详解)
  • 零基础上手Python数据分析 (19):Matplotlib 高级图表定制 - 精雕细琢,让你的图表脱颖而出!
  • 初级达梦dba的技能水准
  • C++:详解命名空间
  • 清醒思考的艺术
  • 二叉树的顺序结构及实现
  • 【第一天】一月速通python,第一天基本语法
  • ZYNQ笔记(九):定时器中断
  • (done) 吴恩达版提示词工程 1. 引言
  • 软件测试笔记(测试的概念、测试和开发模型介绍、BUG介绍)
  • C语言之机房机位预约系统
  • oracle认证大师ocm学习
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.3.23)
  • 基于Spring AI Alibaba实现MCP协议的SSE实时流式服务深度解析
  • 肖特基二极管详解:原理、作用、应用与选型要点
  • Cribl 对Windows-xml log 进行 -Removing filed-06
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类尺寸QSizeF)
  • 常见浏览器 WebDriver 驱动下载
  • PCL库开发入门
  • Kubernetes控制平面组件:调度器Scheduler(一)
  • 基于深度学习的线性预测:创新应用与挑战
  • 探秘STM32如何成为现代科技的隐形引擎
  • 【锂电池SOH估计】SVM支持向量机锂电池健康状态估计,锂电池SOH估计(Matlab完整源码和数据)
  • HTMLCSS实现网页轮播图
  • DB-Day9笔记-用户权限数据库备份事务索引视图
  • BFD协议原理