JavaScript-手写apply原理

大家好,昨天因为个人的事情没有及时的更新,不好意思啊,今天来了迟到的手写原理,今天的跟前天写的很类似,叫apply,想必大家都知道apply也是用来改变this指向的,只不过传递的第二个参数是一个数组,所以今天的内容很简单,下面我们来实现一下:

我们先还原前天写的call的模拟方法:

;(function(){
    function myCall(context){
            context=context?Object(context):window
            context.f=this
            let arr=[]
            for(let i=1;i

上面是我手写的call的执行原理,有新来的小伙伴大家可以去看一下前天的文章,大家在来学习这篇文章就简单了很多,下面我们来进入今天的正题apply的手写,大家知道apply和call的区别就是apply第二个参数是数组所以我们只需要改一点点就可以了,下面上代码:

;(function(){
    function myApply(context,args){
            context=context?Object(context):window
            context.f=this
            因为这里直接传的就是数组这里我们直接把for循环删掉即可给方法传入数组就好了!
            let fn=context.f(...args)
            delete context.f
            return fn;
    }
    Function.prototype.myApply=myApply
}())
function fn(num1,num2){
    return num1+num2;
}
let obj={
    name:'张三'
}
let abc=fn.myApply(obj,[1,2])

上面就简单的实现了apply的手写原理,今天水了一篇,万分抱歉,明天一定认真更新哈哈哈,大家晚安呢!喜欢的点个赞感谢!!!

你可能感兴趣的:(手写js,javascript,开发语言,前端)