一 map 函数(copyMap) map函数接收两个参数 1 迭代器函数 ,该函数有三个参数 数组项的值 数组项下标 数组对象本身 2 迭代器函数的this指向 (注:当传了该值,迭代器函数不能为箭头函数了。原因是箭头函数没有this隐式指向。箭头函数在定义时候就已经 ...
一 map 函数(copyMap) map函数接收两个参数 1 迭代器函数 ,该函数有三个参数 数组项的值 数组项下标 数组对象本身 2 迭代器函数的this指向 (注:当传了该值,迭代器函数不能为箭头函数了。原因是箭头函数没有this隐式指向。箭头函数在定义时候就已经 ...
实现bind函数 参考MDN提供的Polyfill方案 fBound函数这里有个判断 this instanceof FNOP 这个其实是为了避免一种情况,因为bind函数返回的是一个函数,当我们把这个函数实例化(就是new fun()) 根据官方文档 当返回的函数 ...
防抖是延迟执行,而节流是间隔执行,函数节流即每隔一段时间就执行一次,实现原理为设置一个定时器,约定xx毫秒后执行事件,如果时间到了,那么执行函数并重置定时器,和防抖的区别在于, 防抖每次触发事件都重置定时器,而节流在定时器到时间后再清空定时器 本文看自:https://juejin.im ...
手写call、apply、bind函数 一、总结 一句话总结: 其实都不用记,用脑子去推就好了:核心点是为传进来的对象context添加fn这个函数属性,然后context就可以执行fn这个函数,也就是改变了fn的this指向 二、手写call,apply ...
if(!Function.prototype.bind){ Function.prototype.bind = function(oThis){ if(typeof this !=="function"){ //如果不函数抛出异常 throw new ...
...
下面来验证一下 可以看到还是比较成功的,再来验证一下上下文有没有绑定成功 再看一下错误处理 ok!大功告成了 ...
promise规范 1、当实例化Promise时会立即执行 2、已经是成功态或是失败态不可再更新状态 3、让Promise支持异步 我们可以参照发布订阅模式,在执行then方法时如果还在等待态(pending),就把回调函数临时寄存到一个数组里,当状态发生改变时 ...