手写call、apply、bind函数 一、总结 一句话总结: 其实都不用记,用脑子去推就好了:核心点是为传进来的对象context添加fn这个函数属性,然后context就可以执行fn这个函数,也就是改变了fn的this指向 二、手写call,apply ...
手写call、apply、bind函数 一、总结 一句话总结: 其实都不用记,用脑子去推就好了:核心点是为传进来的对象context添加fn这个函数属性,然后context就可以执行fn这个函数,也就是改变了fn的this指向 二、手写call,apply ...
function sum(){ console.log(this.name) } Function.prototype.mycall=function(myobj,...args){ ...
一 map 函数(copyMap) map函数接收两个参数 1 迭代器函数 ,该函数有三个参数 数组项的值 数组项下标 数组对象本身 2 迭代器函数的this指向 (注:当传了该值,迭代器函数不能为箭头函数了。原因是箭头函数没有this隐式指向。箭头函数在定义时候就已经 ...
call apply ...
call方法 f.myCall(obj) 就是将f方法添加到obj的属性中,f中的this 指向 obj;即 obj.f() ...
少废话,show my code call 原理都在注释里了 apply 和call的区别在于第二个参数 bind 和call的区别在于不立即执行,返回一个函数即可 函数柯里化 函数柯里化,举例,有如下函数 有一个curry转换函数对test函数进行一些转换 ...
实现bind函数 参考MDN提供的Polyfill方案 fBound函数这里有个判断 this instanceof FNOP 这个其实是为了避免一种情况,因为bind函数返回的是一个函数,当我们把这个函数实例化(就是new fun()) 根据官方文档 当返回的函数 ...
防抖是延迟执行,而节流是间隔执行,函数节流即每隔一段时间就执行一次,实现原理为设置一个定时器,约定xx毫秒后执行事件,如果时间到了,那么执行函数并重置定时器,和防抖的区别在于, 防抖每次触发事件都重置定时器,而节流在定时器到时间后再清空定时器 本文看自:https://juejin.im ...