vue做响应式网站,建设知道购物网站,梧州红豆网梧州论坛,长沙网站开发培训JS-IIFE闭包 IIFE(立即调用函数表达式)示例IIFE实现单例模式闭包计数器例子非闭包实现闭包实现IIFE闭包实现内存泄露解决IIFE(立即调用函数表达式) 示例 (function iife(){ //直接执行#xff0c;无需调用console.log(hello);
})(); //上面相当于function ii… JS-IIFE闭包 IIFE(立即调用函数表达式)示例IIFE实现单例模式闭包计数器例子非闭包实现闭包实现IIFE闭包实现内存泄露解决 IIFE(立即调用函数表达式) 示例 (function iife(){ //直接执行无需调用console.log(hello);
})(); //上面相当于function iife(){console.log(hello);
}
iife(); 注意为了规范IIFE的函数名虽无意义但最好加上 IIFE实现单例模式 var sun(function(){console.log(sun create...); //在声明还未调用时就被直接执行var namesun;var size1599;function say(){console.log(name size);}return{ //返回可供调用的方法或参数say:say,name:name //返回的name只是一个形参}
})();
sun.say(); IIFE的作用:隔离作用域防止污染全局命名空间 闭包 计数器例子 非闭包实现 var count0;
function add(){count;console.log(count);
}
add();
add(); //输出2 上面的计数器缺点是count是全局的不具有安全性易被误操作。用闭包就可以解决这个问题 闭包实现 function counter(){var count0; //函数内部定义不影响全局function add(){count;console.log(count);}return{add:add};
}
var counter1new counter();
counter1.add();
counter1.add(); //输出2 IIFE闭包实现 (function counter(){var count0;function add(){count;console.log(count);}window.counter{ //直接把计时器赋给window作为属性add:add};
})();
//直接调用不需要new
counter.add();
counter.add(); //输出2 内存泄露解决 当不需要使用闭包时闭包仍在占用内存可能会造成 内存泄露 因此不使用时可以通过 counternull; 此时counter就被释放了 转载于:https://www.cnblogs.com/yangjiale/p/11261372.html