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

手写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}
}

相关文章:

  • Jetson Orin Nano GPIO 实战,用 devmem 玩转 Pinmux 引脚复用配置
  • 【数据可视化-19】智能手机用户行为可视化分析
  • AI与思维模型【71】——断裂点理论
  • 第五章 SQLite数据库:5、SQLite 进阶用法:ALTER 命令、TRUNCATE 操作、视图创建、事务控制和子查询的操作
  • 【Java面试系列】Spring Cloud微服务架构中的分布式事务解决方案与Seata实现原理详解 - 3-5年Java开发必备知识
  • 每日算法-250420
  • qwen 32B 模型配置文件参数解释;48 个堆叠的解码器层是什么意思; `max_window_layers`的作用; 定义 `device_map`
  • 文件上传漏洞:Pass-01
  • Linux安装mysql_exporter
  • UE虚幻4虚幻5动画蓝图调试,触发FellOutOfWorld事件和打印输出,继续DeepSeek输出
  • C++学习之游戏服务器开发⑩ZINX的TCP通道实现
  • 机制的作用
  • Origin将双Y轴柱状图升级为双向分组柱状图
  • 在 Ubuntu 系统上安装 PostgreSQL
  • Arduino示例代码讲解:Project 08 - Digital Hourglass 数字沙漏
  • javascript day4
  • C语言之图像文件的属性
  • Java(自用查看版)
  • Towards Transferable Targeted 3D Adversarial Attack in the Physical World--阅读笔记
  • 头歌实训之连接查询
  • 豫章故郡,剑指演艺经济新高地
  • 经济日报:从三个变化看外贸破局之道
  • 坚定信心主动应变局谋发展,上海市领导走访调研外资外贸企业
  • 特朗普称美乌矿产协议将于24日签署
  • 何立峰:着力推进外贸高质量发展,共同努力建设开放型世界经济
  • 山西“订婚强奸案”审判长答问