首页 > 其他分享 >手写上下文函数

手写上下文函数

时间:2023-03-12 17:24:04浏览次数:39  
标签:function const 函数 fn1 customBind apply 手写 上下文

 

bind

  • 返回一个新函数,但不执行
  • 绑定this和部分参数
  • 如是箭头函数,无法改变 this,只能改变参数
Function.prototype.customBind = function ( context, ...bindArgs ) {
  const self = this // 当前函数本身
  return function ( ...args ) {
    const newArgs = bindArgs.concat( args )
    return self.apply( context, newArgs )
  }
}
function fn1 ( a, b, c ) {
  console.log( this, a, b, c )
}
const fn2 = fn1.customBind( { a: 1 }, 10, 20, 30 )

 

 

  • call 和 apply 应用
  • bind 返回一个新函数(不执行),call 和apply 会立即执行函数
  • 绑定this
  • 传入执行参数

标签:function,const,函数,fn1,customBind,apply,手写,上下文
From: https://www.cnblogs.com/wq2022/p/custom_bind.html

相关文章

  • linux下的ptrace函数
    Linux下的ptrace函数ptrace系统调用的用途ptrace系统调从名字上看是用于进程跟踪的,它提供了父进程可以观察和控制其子进程执行的能力,并允许父进程检查和替换子进程的内核......
  • MySQL中的函数
    1.函数函数与存储过程一样,也是一组预先编译好的SQL语句的集合,理解为批处理语句。将实现某个功能的一段代码封装起来,只暴露名字,隐藏具体实现过程。函数与存储过程的......
  • API和Lambda函数式编程思想
    Arrays工具类1.Arrays.toString()该方法可以将对应数组内容以字符串形式输出2.Arrays.sort(int[])该方法对int数组内容进行选择排序原理:for(intx=0;x<arr.......
  • 质数、约数、欧拉函数、欧几里得
    质数试除法判定质数boolisprime(intx){ if(x==1) returnfalse; if(x==2) returntrue; for(inti=2;i<=x/i;i++) if(x%i==0) returnfals......
  • SQL-数值函数
       ......
  • 实现函数init() 初始化数组为全0、实现print() 打印数组的每个元素 、实现reverse()
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>//【题目名称】//数组操作//【题目内容】//创建一个整形数组,完成对数组的操作//实现函数init()初......
  • Python 异步: 异步上下文管理器(17)
    动动发财的小手,点个赞吧!上下文管理器是一种Python构造,它提供了一个类似try-finally的环境,具有一致的接口和方便的语法,例如通过“with”表达。它通常与资源一起使用,确......
  • Unity中使用Timer实现延迟调用函数
    需求背景在Unity中实现延迟调用函数的方法,据我所知有三种使用协程中的yieldreturn使用Invoke使用DoTween中的Sequence但是如果我想一次性添加多个函数,并且在每个函......
  • pandas中groupby的统计函数的应用
    2统计函数的应用df.groupby("Courses").max()#以"Courses"为分组依据,求每列的最大值(主要针对相同的"Courses")#Na值不参与计算df.groupby("Courses").min()#通过min函数......
  • pandas函数中的Groupby
    Groupby1.Groupby的基础操作importpandasaspdimportnumpyasnpdata={"Courses":["Numpy","Pandas","Java","Pandas","Python","Python"],"Teacher":["Jack","L......