自执行函数
自执行函数严格来说也叫函数表达式( 匿名函数 ),它主要用于 创建一个新的作用域 ,且无
需调用,在程序加载时会 自动执行 。又因为自执行函数不能被调用,被称为一次性函数。
// 自执行函数无需调用,立即执行 (function(){ // 函数体 }())
// 自执行函数传参方式 (function(x,y){ console.log(x+y); // 5 }(2,3));
// 自执行函数返回值 let sum = (function(x,y){ return x+y; }(2,3)); console.log(sum);
闭包函数
闭包函数就是函数中套了一个函数,内层函数可以访问外层函数中的变量。闭包函数不会被
JS 的垃圾回收机制进行回收。
闭包函数的特性:
封闭性 :外界无法访问闭包内部的数据,除非闭包主动向外界提供访问端口。
持久性 :一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被
调用之后,闭包结构依然存在。
闭包函数的缺点:
使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等缺点。
闭包函数主要用于封装变量,收敛权限,防止变量污染。
// 闭包函数被外部函数返回给外界 function 函数名() { // 函数体 return function() { // 函数体 } } 函数名(); // 调用函数
// 闭包函数通过外部函数调用内部函数执行 function 函数名() { // 函数体 function 内部函数名() { // 函数体 } 内部函数名(); // 在函数内调用内部函数 } 函数名(); // 调用函数