当前位置: 首页 > Web前端 > JavaScript

Javascript的apply方法的使用与实现

时间:2023-03-27 15:25:04 JavaScript

Javascript的apply方法的使用与实现在面试中,我们经常会遇到手写bind、apply、call方法的笔试题。今天我们就来看看apply方法是什么,并实现apply方法,免得面试时答不上来。先了解一下apply方法是什么,实现了哪些功能。请参阅MDNFunction.prototype.apply()上的介绍apply()方法调用具有给定this值的函数,并将参数作为数组(或类数组对象)提供。示例:varhello=function(a,b,c,d){console.log(this.name);console.log(a,b,c,d)};vardemo={name:'demo'};varh=hello.apply(demo,[1,2,3,4]);//demo//1234可以看到,apply方法中的this点是传入的第一个对象,第二个进来的参数是一个数组对象。将数组中的参数解构后,应用到原函数中就ok了,输出相应的结果。Function.prototype.myApply=function(obj,arr){obj.tempFunction=thisconstres=obj.tempFunction(...arr)deleteobj.tempFunction返回res}varh=hello.myApply(demo,[1,2,3,4]);这次我写的时候没有使用arguments,也是比较简单的一种实现方式。当然,也有很多缺陷。一是没有进行类型验证,二是传入的第二个参数可以是类数组对象,这里不做处理。重要的是思路,其余优化读者自行搞定。