JS中的闭包
搞前端的小菜
热爱前端的小菜,低代码方向的爱好者
展开
-
JS闭包的深入理解---函数防抖(详解4)
在上一篇中,我们知道了函数节流的实现方式,用原始的方法和闭包的方法,阐述二者之间的差异。 那现在说到函数防抖也容易理解的多. 我们可以来先看一下什么是函数防抖: 一个需要频繁触发的函数,规定时间内只让最后一次生效,前面的不生效(例如搜索功能) 什么意思呢,就是比如有个按钮,我kuku一直点击它,那么在一定时间内(时间是我自己设置的)只有最后一次生效。 OK,似乎就是和函数节流反过来,现在我们用原来的方法实现一下他: <button id="btn1">原始方法</button>原创 2020-10-19 21:00:27 · 653 阅读 · 0 评论 -
JS闭包的深入理解---函数节流(详解3)
有了上两篇关于闭包的理解,我们就可以用闭包来实现一些功能。 而函数节流就是一个很经典的例子: 首先我们来解释一下什么是函数节流: 一次函数执行后,只有大于设定的执行周期才执行第2次。 有个需要频繁触发的函数,处于优化的性能考虑,在规定时间内,只让函数触发第一次生效,后面的不生效。 意思就是,比如有个按钮,你kuku一直点,我设置成两秒内只有第一次生效,后面的不会生效,哎这就是函数节流。 我先用传统的方法实现一下: 首先有一个按钮,再来一个方法: var f1 = function () {原创 2020-10-19 14:58:13 · 504 阅读 · 0 评论 -
JS闭包的深入理解(详解2)
OK,通过上一篇文章,我们理解了闭包是怎么实现的后,我们就可以看一个比较经典的小例子了。 如图,如果我在网页上显示了一个ul,里面有3个li,然后我给这三个li绑定点击事件,所实现出的效果是点击第一个li就打印1,点击第二个li就打印2,点击第三个li就打印3。 OK,似乎并不是很难,如果我们用之前固有的理解方法似乎可以这么写: var oul1=document.getElementById('ul1'); var oli1= oul1.getElementsByTagName('li原创 2020-10-19 09:33:24 · 150 阅读 · 0 评论 -
JS闭包的深入理解(详解1)
OK,如果说到JS中的闭包,给我的感觉就是它能很好地体现出JS函数式编程的特点。 它不同于我们之前学的C,C++,JAVA中,函数只能被声明,调用,或者是类的成员方法。 在JS中,函数可以赋值给一个变量,而JS又是弱类型语言,所以在JS中函数就可以作为参数或者是返回值(这一点就是蛮好玩的)。 OK,了解了上面,我们就来看一下什么是闭包? 定义:函数嵌套函数,并且内层函数作为返回值,引用外部函数的参数或变量。 乍一看似乎不好理解,emmm,我们就通过例子来一步步理解闭包的概念。 例子一 function f1原创 2020-10-19 08:56:46 · 210 阅读 · 1 评论