摘要: 闭包的应用:定义js模块。 js模块: 就是一个私有的函数内部封装一些功能和数据。函数里的这些数据和方法是私有的,外面不可见,除非暴露出去。 将所有的数据和功能都封装在一个函数内部(私有的)。 只向外暴露一个包含n个方法的对象或函数。 模块的使用者只需要通过模块暴露的对象来调用方法来实现功能。 自己 阅读全文
posted @ 2022-03-14 20:35 青仙 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 产生: 在嵌套内部函数定义执行完成时就产生了(不是调用闭包函数),但一定是外部函数被调用才能执行函数定义,才会产生闭包的空间,外部函数一旦被调用,就有函数内部的变量提升和函数提升。 死亡: 在嵌套的内部函数成为垃圾对象时。 阅读全文
posted @ 2022-03-14 18:22 青仙 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 作用: 1、 使用函数内部的变量在函数执行完后,仍然存活在内存中(延长了局部变量的生命周期) 2、 让函数外部可以操作(读写)到函数内部的数据(变量/函数) 扩展 1、函数执行完后,函数内部声明的局部变量是否还存在? 一般是存在,存在于闭包中的变量才可能存在。 2、在函数外部能直接访问函数内部的局部 阅读全文
posted @ 2022-03-14 18:09 青仙 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 将函数作为另一个函数的返回值 function fn1(){ var a=2; function fn2(){//执行函数定义就会产生闭包,执行函数定义不是指调用函数。 a++; console.log(a); } return fn2; } var f=fn1(); f();//3 f();//4 阅读全文
posted @ 2022-03-14 17:43 青仙 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1,如何产生闭包? 当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量时,就产生了闭包。 2,闭包到底是什么? 使用chrom调试查看 理解一:闭包是嵌套的内部函数 理解二:包含引用变量(函数)的对象 注意:闭包存在于嵌套的内部函数中 3,产生闭包的条件 函数嵌套 内部函数引用了外部函数的数 阅读全文
posted @ 2022-03-14 16:59 青仙 阅读(39) 评论(0) 推荐(0) 编辑
摘要: js循环绑定事件 在编写JS代码的时候,我们经常会遇到要对一系列元素进行事件绑定的情况,然后就会理所当然的开一个for循环,对元素的事件进行赋值等操作,最后运行的效果却不是希望有的样子,事件的响应只能和最后一个元素一样。 html元:希望给每个按钮都绑定单击事件,输出他们是第几个按钮 <body> 阅读全文
posted @ 2022-03-14 16:24 青仙 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 作用域 理解 *就是一块地段,一个代码段所在的区域。 *它是静态的(相对于上下文对象),在编写代码时就确定了。 分类: 全局作用域 函数作用域 块作用域(ES6) 作用: 隔离变量,不同作用域下的同名变量不会有冲突。 var a=10,b=20; function fn(x){ var a=100, 阅读全文
posted @ 2022-03-14 11:40 青仙 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 函数执行分类: 执行函数定义 只是定义了一个函数,但是并没有执行函数体,只是创建了一个函数对象。内部代码相当于this.prototype={},创建一个空的原型对象(空的object对象)。 执行函数 也就是调用函数,函数名加括号。 函数原型 严格来说,函数也是一个实例(对象),是Function 阅读全文
posted @ 2022-03-14 10:14 青仙 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 1 console.log('global begin:'+i); var i=1; foo(1); function foo(i){ if(i==4) return; console.log('foo() begin:'+i); foo(i+1); console.log('foo() end:' 阅读全文
posted @ 2022-03-14 08:54 青仙 阅读(83) 评论(0) 推荐(0) 编辑