underScore专题
underScore源码分析,跟源码学习方法
麦乐乐
这个作者很懒,什么都没留下…
展开
-
underScore专题-template模版引擎
先来看一个例子,了解一下什么是模版引擎: var str = "hello: <%=name %>" var parese = _.template(str) console.log(parese({name: '麦乐'})) // hello: 麦乐 再看一下复杂点的: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&原创 2020-05-21 15:50:18 · 271 阅读 · 0 评论 -
underScore专题-compose函数,节流函数,防抖函数
compose函数 从要实现的效果理解复合函数: var fun = _.compose(fun1, fun2, fun3) fun(1) 把多个函数组合为一个函数,依次调用参数,并把组合后的参数传递的参数,依次传递给每一个函数,1先传递给fun3然后再把处理结果传递给fun2,再把处理结果传递给fun1最后返回fun1的处理结果。 如果不实用compose函数,就需要像下面这种方式去调用,可读性比较差。 function fun1(a) { retur原创 2020-05-18 17:46:34 · 285 阅读 · 0 评论 -
underScore专题-字符串逃逸,防止XSS攻击
什么是XSS攻击? 举一个例子:页面中有一个input框,我们需要把用户输入的内容展示在页面中,具体代码如下:原创 2020-05-18 11:29:04 · 412 阅读 · 0 评论 -
underScore专题-偏函数,缓存函数
偏函数 先来看定义:在计算机科学中,局部应用是指固定一个函数的一些参数,然后产生另一个更小元的函数。 什么是元?元是指函数参数的个数,比如一个带有两个参数的函数被称为二元函数。 这是一本书的定义,看起来跟柯里化函数有点像。 对比柯里化函数:柯里化是将一个多参数函数转换成多个单参数函数,也就是将一个 n 元函数转换成 n 个一元函数。 偏函数则是固定一个函数的一个或者多个参数,也就是将一个 n 元函数转换成一个 n - x 元函数。 举个简单的例子: function isType(t原创 2020-05-17 22:11:33 · 167 阅读 · 0 评论 -
underScore专题-浅克隆,自己实现深克隆
clone underScore中暴露除了一个方法clone: // Create a (shallow-cloned) duplicate of an object. function clone(obj) { if (!isObject(obj)) return obj; return isArray(obj) ? obj.slice() : extend({}, obj); } // Is a given variable an原创 2020-05-15 16:53:05 · 723 阅读 · 0 评论 -
underScore专题-剩余参数-restArguments
在es6中,可以这样来使用函数的参数 function test(a, ...rest) { console.log(a, rest) } test(1, 23, 4, 3) 它支持将剩下的参数以数组的形式放入形参的最后一个参数中。但是在underScore中,不能这样直接来使用后,因为不确定执行的环境,underScore内部自己实现了一个restArguments方法,就是用es5的方式来实现,可以让我们随心所欲的使用剩余参数语法。 看一下这个函数怎么原创 2020-05-14 21:35:26 · 321 阅读 · 0 评论 -
underScore专题-源码分析迭代器
跟underScore学习undefined的处理 在javaScript中我们判断一个变量是否是undefined通常会这样写 var a; if (a === undefined) { console.log(1) // 1 } 但是在javaScript中undefined并不可靠,因为undefined可以作为变量名使用: var a; var undefined = 2 console.log(undefined) // 2 if (a === undefined) {原创 2020-05-14 10:57:54 · 227 阅读 · 0 评论 -
underScore专题-源码分析mixin和链式调用
1 数组去重 _.unique = function(arr, callbacks) { var ret = []; var target, i = 0; var len = arr.length for(; i < len; i++) { target = callbacks ? call...原创 2019-07-31 16:02:26 · 287 阅读 · 0 评论