很多JS插件的代码开头都是 (function( 一直不太明白 直到看到
// 事件绑定 this.bindHandler = (function() { if (window.addEventListener) {// 标准浏览器 return function(elem, type, handler) {// elem:节点 type:事件类型 handler:事件处理程序 // 最后一个参数为true:在捕获阶段调用事件处理程序 为false:在冒泡阶段调用事件处理程序 elem.addEventListener(type, handler, false); } } else if (window.attachEvent) {// IE浏览器 return function(elem, type, handler) { elem.attachEvent("on" + type, handler); } } })(); // 事件解除 this.removeHandler = (function() { if (window.removeEventListerner) {// 标准浏览器 return function(elem, type, handler) { elem.removeEventListerner(type, handler, false); } } else if (window.detachEvent) {// IE浏览器 return function(elem, type, handler) { elem.detachEvent("on" + type, handler); } } })();
化简成
a = (function(){ return function(b){ alert(b); } })(); a(‘$b$‘);
一眼就看明白了 : 调用 function的返回值 也就是闭包函数
时间: 2024-10-06 06:27:37