11 2018 档案

摘要:108 _.overArgs创建一个函数,这个函数的参数会被对应的transform方法处理 参数 func (Function): 需要被包裹的函数[transforms=[_.identity]] (...(Function|Function[])): 参数转换函数组成的数组 返回值 (Func 阅读全文
posted @ 2018-11-29 16:50 hahazexia 阅读(182) 评论(0) 推荐(0) 编辑
摘要:107 _.once创建一个函数被限制只能调用func函数一次。重复调用这个函数就会返回第一次调用时的结果。 参数 func (Function): 被限制的函数 返回值 (Function): 返回被限制的函数 例子 源代码: before /** * Creates a function tha 阅读全文
posted @ 2018-11-29 16:40 hahazexia 阅读(218) 评论(0) 推荐(0) 编辑
摘要:106 _negate将predicate方法返回的结果取反 参数 predicate (Function): 需要取反结果的函数 返回值 (Function): 返回新的结果被取反的函数 例子 源代码: 阅读全文
posted @ 2018-11-29 16:35 hahazexia 阅读(886) 评论(0) 推荐(0) 编辑
摘要:105 创建一个可以缓存func的结果的函数,resolver用来解析缓存result的键 将计算结果缓存在闭包中的私有变量中,如果再次计算同样的值就直接获取 创建一个缓存func方法结果的函数。如果传递了resolver,这个函数用来计算存储结果的缓存key值基于提供给缓存方法的参数。默认情况下, 阅读全文
posted @ 2018-11-28 23:49 hahazexia 阅读(849) 评论(0) 推荐(0) 编辑
摘要:104 _.flip创建一个函数调用func函数并且将接收到的参数反转顺序后传入 参数 func (Function): 需要反转参数顺序处理的函数 返回值 (Function): 返回新的反转传入参数的函数 例子 源代码: 阅读全文
posted @ 2018-11-27 15:08 hahazexia 阅读(180) 评论(0) 推荐(0) 编辑
摘要:103 _.delay等待wait毫秒后调用func函数。任意额外的参数会在调用的时候传递给func 参数 func (Function): 需要推迟执行的函数wait (number): 延迟调用的毫秒数[args] (...*): 延迟调用时额外传递的参数 返回值 (number): 返回定时器 阅读全文
posted @ 2018-11-27 15:00 hahazexia 阅读(308) 评论(0) 推荐(0) 编辑
摘要:102 _.defer延迟调用func函数直到当前的调用栈被清空。任何额外的参数都会在调用的时候传递给func函数 参数 func (Function): 需要延迟执行的函数[args] (...*): 需要传递给func的额外参数 返回值 (number): 返回定时器id 例子 源代码: 阅读全文
posted @ 2018-11-27 14:45 hahazexia 阅读(314) 评论(0) 推荐(0) 编辑
摘要:101 _.debounce创建一个去抖函数来推迟调用func,自从上一次去抖函数被调用之后等待wait毫秒时间过后再调用,或者等待直到下一次浏览器帧被重新绘制。创建去抖函数的同时也会创建一个cancel方法去取消延迟func调用,还有一个flush方法来立即调用。也提供了option参数来表明fu 阅读全文
posted @ 2018-11-27 14:05 hahazexia 阅读(1941) 评论(0) 推荐(1) 编辑
摘要:本文整理自https://medium.com/@kj_huang/implementation-of-lodash-curry-function-8b1024d71e3b 和https://www.jianshu.com/p/822c4bfeb8a9 上面这种简写法第一次看不明白,改变一下,加一个 阅读全文
posted @ 2018-11-26 09:51 hahazexia 阅读(176) 评论(0) 推荐(0) 编辑
摘要:100 与curry方法类似,区别是对于局部应用的参数的处理不同,curryRight将参数反向组合和传递给func 参数 func (Function): 需要柯里化的函数[arity=func.length] (number): func函数期望形参个数 返回值 (Function): 返回新的 阅读全文
posted @ 2018-11-24 14:46 hahazexia 阅读(279) 评论(0) 推荐(0) 编辑
摘要:99 _.curry创建一个方法接受func的参数列表,要么调用func返回其结果,在 至少arity参数数量被提供的情况下;要么返回一个函数继续接受剩余的func的参数。如果func.length不够充足,arity参数可能被指定 默认用下划线作为参数占位符 参数 func (Function): 阅读全文
posted @ 2018-11-24 13:32 hahazexia 阅读(361) 评论(0) 推荐(0) 编辑
摘要:axios的config中提供了一个cancelToken属性,可以通过传递一个新的CancelToken对象来在请求的任何阶段关闭请求。 CancelToken.js Cancel.js 'use strict'; /** * A `Cancel` is an object that is thr 阅读全文
posted @ 2018-11-22 16:18 hahazexia 阅读(11962) 评论(0) 推荐(0) 编辑
摘要:axios在nodejs环境使用http或者https模块发送请求。 阅读全文
posted @ 2018-11-22 15:35 hahazexia 阅读(2036) 评论(0) 推荐(0) 编辑
摘要:在axios的defaults.js文件里有getDefaultAdapter这个方法,用来判断环境,然后返回对应的请求适配器。 XMLHttpRequest 浏览器环境使用XMLHttpRequest对象发送请求 步骤如下 下面是xhr.js源代码: 阅读全文
posted @ 2018-11-22 14:15 hahazexia 阅读(5286) 评论(0) 推荐(0) 编辑
摘要:dispatchRequest是axios的发送请求部分。 它会根据环境调用请求适配器,如果是浏览器环境,调用xhr来发送请求,如果是nodejs环境,调用http发送请求。 封装好的适配器都会返回一个promise,所以在dispatchRequest中会对适配器调用then方法,传递fulfil 阅读全文
posted @ 2018-11-22 11:29 hahazexia 阅读(479) 评论(0) 推荐(0) 编辑
摘要:Axios构造函数 Axios构造函数实例化出的axios对象拥有拦截器属性,拦截器属性里有两个拦截器对象,一个是请求拦截器,一个是响应拦截器 下面是结构图 然后就是整个Axios最核心的东西,Axios.prototype.request方法,使用axios发请求就是在调用这个方法。 Axios. 阅读全文
posted @ 2018-11-22 10:13 hahazexia 阅读(987) 评论(1) 推荐(1) 编辑
摘要:axios源码目录结构 创建axios对象 axios.js是axios源码的第一个文件,创建axios对象,基于Axios类型。 但是不是普通的调用构造函数,而是在Axios.prototype.request的基础上添加了很多属性,所以axios对象本身其实是一个函数,一个拥有很多属性的函数。 阅读全文
posted @ 2018-11-21 11:59 hahazexia 阅读(3275) 评论(0) 推荐(1) 编辑
摘要:98 _.bindKey创建一个调用object上对应key的方法的函数,将局部应用参数插入到最终参数列表的最前面 此方法与_.bind方法的不同之处在于,此方法允许受约束的函数去引用被重新定义的方法或者根本不存在的方法(参见惰性函数定义) 占位符默认使用下划线 参数 object (Object) 阅读全文
posted @ 2018-11-16 12:00 hahazexia 阅读(755) 评论(0) 推荐(0) 编辑
摘要:本文翻译自http://peter.michaux.ca/articles/lazy-function-definition-pattern 本文审查了一种被我称为惰性函数定义的函数式编程设计模式。我已经多次发现这种模式在javascript中非常有用,尤其在开发跨浏览器库的时候可以提高运行时的效率 阅读全文
posted @ 2018-11-16 10:19 hahazexia 阅读(866) 评论(0) 推荐(0) 编辑
摘要:97 _.bind创建一个函数来调用func方法,会绑定this到thisArg参数上,并将partials参数插入到接收到的参数列表最前面 _.bind.placeholder值在整体构造中默认是下划线,可能在局部应用的参数中作为占位符使用 与原生的bind方法不同,本方法不设置被绑定方法的len 阅读全文
posted @ 2018-11-13 18:42 hahazexia 阅读(593) 评论(0) 推荐(0) 编辑
摘要:96 _.before创建一个会调用func的函数,会绑定this,限制func调用的次数,超过限制次数之后调用这个被创建的函数会返回最后一次func结果 参数 n (number): 限制func只能被调用几次func (Function):被限制的方法 返回值 (Function): 返回新的被 阅读全文
posted @ 2018-11-13 09:59 hahazexia 阅读(269) 评论(0) 推荐(0) 编辑
摘要:95 _.ary创建一个引用func方法的函数,它会限制参数的个数,忽略其他所有额外参数 参数 func (Function): 需要限制参数个数的方法[n=func.length] (number): 接收参数个数 返回值 (Function): 返回处理好的新方法 例子 _.map(['6', 阅读全文
posted @ 2018-11-12 16:38 hahazexia 阅读(324) 评论(0) 推荐(0) 编辑
摘要:94 _.after与before方法相对应,创建一个函数,在被调用n次后func才会被调用 参数 n (number): func被调用之前的调用次数func (Function): 需要被约束的方法 返回值 (Function): 返回新的被约束的方法 例子 源代码: 阅读全文
posted @ 2018-11-12 10:34 hahazexia 阅读(385) 评论(0) 推荐(0) 编辑
摘要:93 _.now获取从Unix纪元(1970年1月1日)开始一直到现在的经历的时间的毫秒数 参数 返回值 (number): 返回时间戳 例子 _.defer(function(stamp) { console.log(_.now() - stamp); }, _.now()); // => Log 阅读全文
posted @ 2018-11-12 10:18 hahazexia 阅读(548) 评论(0) 推荐(0) 编辑
摘要:92 _sortBy根据集合创建一个数组,数组的顺序根据每一个元素调用iteratee后的返回值排序,按照升序排列。这个方法会进行稳定排序 参数 collection (Array|Object): 需要遍历的集合[iteratees=[_.identity]] (...(Function|Func 阅读全文
posted @ 2018-11-12 10:09 hahazexia 阅读(2013) 评论(0) 推荐(0) 编辑
摘要:91 _.some检查predicate为任意数组元素调用后是否返回true,一旦predicate返回true,遍历就停止 参数 collection (Array|Object): 需要遍历的集合[predicate=_.identity] (Function): 每次遍历调用的方法 返回值 ( 阅读全文
posted @ 2018-11-11 16:05 hahazexia 阅读(304) 评论(0) 推荐(0) 编辑
摘要:90 _.size获取collection的长度,array-like对象返回length属性,对象类型返回自身可遍历的字符串键属性的个数 参数 collection (Array|Object|string): 需要检查的集合 返回值 (number): 返回集合的大小 例子 _.size([1, 阅读全文
posted @ 2018-11-11 15:23 hahazexia 阅读(606) 评论(0) 推荐(0) 编辑
摘要:89 _.shuffle创建一个打乱顺序的数组,使用Fisher–Yates shuffle洗牌算法 参数 collection (Array|Object): 需要打乱顺序的集合 返回值 (Array): 返回打乱顺序的数组 例子 _.shuffle([1, 2, 3, 4]); // => [4 阅读全文
posted @ 2018-11-11 14:08 hahazexia 阅读(2328) 评论(0) 推荐(1) 编辑
摘要:88 _.sampleSize从数组中获取n个唯一key的随机元素 参数 collection (Array|Object): 需要获取随机元素的集合[n=1] (number): 随机元素的个数 返回值 (Array): 返回随机元素组成的数组 例子 源代码: copyArray /** * Co 阅读全文
posted @ 2018-11-11 13:51 hahazexia 阅读(595) 评论(0) 推荐(0) 编辑
摘要:87 _.sample获取数组中的一个随机元素 参数 collection (Array|Object): 需要获取随机元素的集合 返回值 (*): 返回随机元素 例子 _.sample([1, 2, 3, 4]); // => 2 源代码: /** * Gets a random element 阅读全文
posted @ 2018-11-11 13:47 hahazexia 阅读(444) 评论(0) 推荐(0) 编辑
摘要:86 _.reject与filter方法相对立,返回collection中调用predicate不返回true的元素组成的数组 参数 collection (Array|Object): 需要遍历的集合[predicate=_.identity] (Function): 每一次遍历调用的方法 返回值 阅读全文
posted @ 2018-11-09 13:38 hahazexia 阅读(654) 评论(0) 推荐(0) 编辑
摘要:85 _.reduceRight与reduce方法类似,遍历集合元素,调用iteratee,返回累加器对象。区别是遍历的顺序是从右往左 参数 collection (Array|Object): 需要遍历的集合[iteratee=_.identity] (Function): 每一次遍历调用的方法[ 阅读全文
posted @ 2018-11-09 13:12 hahazexia 阅读(195) 评论(0) 推荐(0) 编辑
摘要:84 _.reduce类似原生的reduce将每一个集合中的元素通过iteratee处理后的结果累加到一个值,每一次连续的调用的累加值都是上一次的返回值。如果初始累加值没有提供,就使用第一次循环的返回值 参数 collection (Array|Object): 需要遍历的集合[iteratee=_ 阅读全文
posted @ 2018-11-09 13:00 hahazexia 阅读(1422) 评论(0) 推荐(0) 编辑
摘要:83 _.partition将一个集合的元素分成两组数组,然后返回这两组数组组成的数组。第一个数组是遍历后predicate返回true的所有元素,第二个数组是遍历后predicate返回false的所有元素 参数 collection (Array|Object): 需要遍历的集合[predica 阅读全文
posted @ 2018-11-09 11:57 hahazexia 阅读(489) 评论(0) 推荐(0) 编辑
摘要:82 _.orderBy和sortBy类似,允许指定遍历器遍历的时候排序次序的条件。如果没有指定排序的条件,默认升序。另外,可以指定order参数为desc作为降序,asc作为升序。也可以指定一个比较方法作为排序的条件 参数 collection (Array|Object): 需要遍历的集合[it 阅读全文
posted @ 2018-11-09 11:17 hahazexia 阅读(1955) 评论(0) 推荐(0) 编辑
摘要:81 _.map对数组每一个元素执行迭代器后返回由返回值组成的新数组 参数 collection (Array|Object): 需要遍历的集合[iteratee=_.identity] (Function): 每一次遍历调用的方法 返回值 (Array): 返回新创建的数组 例子 function 阅读全文
posted @ 2018-11-08 17:35 hahazexia 阅读(321) 评论(0) 推荐(0) 编辑
摘要:80 _.keyBy创建一个对象,这个对象的key生成自collection的每一个元素调用iteratee的结果,每一个key对应的value是最后一个负责生成对应key的collection的元素 参数 collection (Array|Object): 需要遍历的集合[iteratee=_. 阅读全文
posted @ 2018-11-07 13:43 hahazexia 阅读(1908) 评论(0) 推荐(0) 编辑
摘要:79 引用path参数对应的方法处理collection中的每一个元素,将引用方法处理后的结果组成一个数组返回。 任何额外的参数都被传递给每一次引用方法的调用 如果path参数是一个方法,直接调用,如果不是,就是路径数组或者路径字符串,就去那个路径下寻找对应的方法 调用引用方法的时候this被绑定到 阅读全文
posted @ 2018-11-07 12:27 hahazexia 阅读(624) 评论(0) 推荐(0) 编辑
摘要:78 _.includes检查value是否出现在collection中,如果collection是字符串,就检查value是否是子串,否则使用SameValueZero规则检测是否相等。如果fromIndex是负数,就作为从结尾开始的偏移 参数 collection (Array|Object|s 阅读全文
posted @ 2018-11-07 10:30 hahazexia 阅读(385) 评论(0) 推荐(0) 编辑
摘要:简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。 上面代码定义了一个ColorPoint类,该类通过extends关键字,继承了Point类的所有属性和方法。但是由于没有部署任何代码,所以这两个类完全一样,等于复制了一个Point类。 阅读全文
posted @ 2018-11-06 22:34 hahazexia 阅读(266) 评论(0) 推荐(0) 编辑
摘要:在计算机科学中,一个AVL树(由Adelson-Velsky和Landis命名)是一个自平衡二叉查找树。AVL树是首次被发明的拥有自平衡特性的数据结构。在一个AVL树中,任何一个节点的两个子树的高度差不会超过1,也就是<=1;如果它们的高度差超过了1,就会触发平衡操作来修复其特性。查找,插入和删除的 阅读全文
posted @ 2018-11-06 14:28 hahazexia 阅读(229) 评论(0) 推荐(0) 编辑
摘要:77 _.groupBy创建一个对象,对象的key是数组的每一个元素调用iteratee后的返回值,对象属性的次序取决于集合中出现的顺序,key相对应的value是生成key时对应的原数组的值 参数 collection (Array|Object): 需要遍历的集合[iteratee=_.iden 阅读全文
posted @ 2018-11-06 11:08 hahazexia 阅读(635) 评论(0) 推荐(0) 编辑
摘要:76 _.forEachRight类似forEach方法,区别是遍历的方向是从右向左 参数 collection (Array|Object): 需要遍历的集合[iteratee=_.identity] (Function): 遍历的每个元素都调用的方法 返回值 (*): 返回原集合 例子 源代码: 阅读全文
posted @ 2018-11-06 10:46 hahazexia 阅读(356) 评论(0) 推荐(0) 编辑
摘要:75 _.forEach类似原生forEach,遍历集合的每一个元素,然后调用iteratee方法,对象用forIn或forOwn方法遍历 参数 collection (Array|Object): 需要遍历的集合[iteratee=_.identity] (Function): 遍历的每个元素都调 阅读全文
posted @ 2018-11-06 10:33 hahazexia 阅读(232) 评论(0) 推荐(0) 编辑
摘要:介绍 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。 上面这种写法跟传统的面向对象语言(比如 C++ 和 Java)差异很大,很容易让新学习这门语言的程序员感到困惑。 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过cl 阅读全文
posted @ 2018-11-05 16:31 hahazexia 阅读(280) 评论(0) 推荐(0) 编辑
摘要:74 _.flatMapDepth类似flatMap方法,展开map遍历后的新数组,区别是传递depth参数,指定展开的层数 参数 collection (Array|Object): 需要遍历的集合[iteratee=_.identity] (Function): 遍历的每个元素都调用的方法[de 阅读全文
posted @ 2018-11-05 10:17 hahazexia 阅读(353) 评论(0) 推荐(0) 编辑
摘要:73 _.flatMapDeep类似于flatMap方法,区别是会递归调用将结果数组全部展开 参数 collection (Array|Object): 需要遍历的集合[iteratee=_.identity] (Function): 遍历每一个元素调用的方法 返回值 (Array): 返回新的展开 阅读全文
posted @ 2018-11-05 10:10 hahazexia 阅读(814) 评论(0) 推荐(0) 编辑
摘要:72 _.flatMap先map遍历集合的所有元素调用iteratee后再将其展平,返回新的展平的数组,只展开一层 参数 collection (Array|Object): 需要遍历展开的集合[iteratee=_.identity] (Function): 遍历时每个元素调用的方法 返回值 (A 阅读全文
posted @ 2018-11-05 09:14 hahazexia 阅读(348) 评论(0) 推荐(0) 编辑
摘要:71 _.findLast遍历集合对象,返回第一个调用predicate返回true的集合元素,与find的区别是从右往左遍历 参数 collection (Array|Object): 需要查找元素的集合对象[predicate=_.identity] (Function): 遍历调用的方法[fr 阅读全文
posted @ 2018-11-04 22:23 hahazexia 阅读(391) 评论(0) 推荐(0) 编辑
摘要:70 _.find遍历集合对象,返回第一个调用predicate返回true的集合元素 参数 collection (Array|Object): 需要查找元素的集合对象[predicate=_.identity] (Function): 遍历调用的方法[fromIndex=0] (number): 阅读全文
posted @ 2018-11-04 21:39 hahazexia 阅读(3235) 评论(0) 推荐(0) 编辑
摘要:69 _.filter和原生的filter方法类似,遍历数组,将predicate处理后结果为真值的元素组成一个新数组返回 参数 collection (Array|Object): 需要遍历的集合[predicate=_.identity] (Function):每一次遍历调用的方法 返回值 (A 阅读全文
posted @ 2018-11-04 16:46 hahazexia 阅读(801) 评论(0) 推荐(0) 编辑
摘要:lodash中有很多方法都涉及到了数组或者对象的遍历,一般这些方法都可以传递自定义的遍历方法,自定义的遍历方法在普通情况下都传递的是function,但是lodash也支持传递一个数组、一个对象,或者一个字符串。 这个iteratee方法的任务就是把一个数组,一个对象,或者一个字符串变成一个有效的f 阅读全文
posted @ 2018-11-03 17:26 hahazexia 阅读(8563) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示