自定义call和applybind方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义call和applybind方法相关的知识,希望对你有一定的参考价值。

call和apply本质上是实现函数调用,即改变this的指向

一、手动实现call方法
Function.prototype.call2=function(object){
let obj =object;
obj.fn = this;
let result;
let args = [...argements].splice(1);
return result =obj.fn(...args)

}
二、重写apply方法
Function.prototype.call2=function(object){
let obj =object;
obj.fn = this;
let result;
let args = [...argements].splice(1);
return result =obj.bn(args)

}

三、手动实现bind方法

Function.prototype.myBind = function(obj,...arg1){ //arg1收集剩余参数
return function (...arg2) { //返回箭头函数, this绑定调用这个方法(myFind)的函数对象
return this.Apply( obj, arg1.concat(arg2) ); // 将参数合并
}
}

以上是关于自定义call和applybind方法的主要内容,如果未能解决你的问题,请参考以下文章

js绑定 this 的方法 call applybind 方法

函数方法:call() apply() bind() 自定义绑定对象

自定义bind方法

谈谈call(), apply(), bind()的异同

手写bind源码

理解call,apply,bind区别和使用场景