匿名函数:简单来说就是无函数名的函数。
基本写法:
// 用()包起来,没有会语法报错:
(function (){alert(1);
})// 如果需要运行,() ,则自调用:
(function (){alert(1);
})()// 自调用,并传参:
(function (str){alert(str);
})("a")
应用场景:
// 1、函数表达式;以此变通,x可以是一个点击事件、可以是对象中的一个方法元素、可以做回调等
var x = function (){alert(1);
}// 2、回调函数;
setInterval(function(){alert(1);
},1000);// 3、模仿块级作用域,优点:减少全局变量可能带来的混乱,并且执行完后会被直接销毁,节省内存。
function fn(){(function(){var a= 1;})();alert(a);// a is undefined
}
fn();// 4、闭包,可访问函数作用域内的变量。
for (var i = 1; i < 3; i++) {(function(x) { setTimeout(function() {console.log("inner:"+x); // 1、2}, 100)})(i)}
console.log("outer:"+i); // 3
关于调用,比较二者区别,就懂了:
function fn1(){return "a"
}
var way1 = fn1();
console.log(way1); // a
function fn2(){return function(){return "b";}
}
var way2 = fn2();
console.log(way2()); // b,如果way2没有(),匿名函数就无法调用,整个匿名函数就会作为文本返回回来
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态