原生js实现call,apply
对于call与Apply,这两者的作用与区别就是改变this指向,当时传参列表不同。下面就来实现这两个方法。
1.call原理实现,其第一个参数表示的是this的执行,后面就是其传入的参数。下面直接通过代码来说明
在上面的代码中主要使用的数组中的push()用于向数组中添加元素,eval()函数可用于计算某个字符,并执行其中的js代码。整个的方法是定义在函数原型上的,且尤其需要注意的就是ctx.fn,在这里表示的是this,最后的时候一定要将其删除。
2.Apply原理实现,其实现的方法与call的类似,不同点在与传入的参数的处理
在上面的代码中主要做了一个兼容性的处理,当传入的数组不存在时的一个兼容性处理方法,后面的实现过程就与上面的call方法实现的原理一样,在这里也不过多的解释。