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

手写实现 bind 函数

Function.prototype.myBind = function(context) {if (typeof this !== 'function') {return}const args = [...arguments].slice(1)const fn = thisreturn function Fn() {// 判断函数作为构造函数的情况,这个时候需要传入当前的函数的this给apply调用,其余情况都传入指定的上下文对象const target = this instanceof Fn ? this : contextreturn  fn.apply(target, args.concat([...arguments]))}
}function setName(name) {this.name = name
}const obj = {age: 1
}
const setName1 = setName.bind(obj)
setName1('test')
console.log('正确结果',  obj)
const setName2 = setName.myBind(obj)
setName1('miome')
console.log('正确结果',  obj)

http://www.lryc.cn/news/280794.html

相关文章:

  • 安卓Android Studio读写MifareOne M1 IC卡源码
  • 一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研
  • Native.js是什么
  • Vant-ui图片懒加载
  • 创建EasyCodeMybatisCodeHelperPro模板文件用于将数据库表生成前端json文件
  • 华为端口安全常用3种方法配置案例
  • RH850P1X芯片学习笔记-Flash Memory
  • 利用XSS漏洞打cookie
  • 用java写个redis工具类
  • 实现防抖函数
  • MetaGPT task1学习
  • 关于量子计算机的设想
  • 序列模型(4)—— Scaling Laws
  • 【软件测试学习笔记1】测试基础
  • pytorch详细探索各种cnn卷积神经网络
  • OpenCV——八邻域断点检测
  • leetcode238:除自身以外数组的乘积
  • VTK开发调试环境下载(VTK开发环境一步到位直接开发,无需自己配置编译 VS2017+Qt5.12.10+VTK)
  • 【JAVA】在 Queue 中 poll()和 remove()有什么区别
  • 常用Java代码-Java中的Optional类和null安全编程
  • android.os.NetworkOnMainThreadException
  • Java生成四位数随机验证码
  • 编程探秘:Python深渊之旅-----数据可视化(八)
  • 上海亚商投顾:创业板指冲高回落 光伏、航运股逆势走强
  • Python3 中常用字符串函数介绍
  • Python - 深夜数据结构与算法之 AVL 树 红黑树
  • Zookeeper使用详解
  • C#属性(Property)
  • 在docker中搭建部署clickhouse
  • 第九部分 使用函数 (三)