js 立即调用函数
function makeCounter() { //不能立即执行 // 只能在makeCounter内部访问i var i = 0; return function () { console.log(++i); }; } var counter = makeCounter(); //对象1 counter(); // logs: 1 //立刻执行 counter(); // logs: 2 var counter2 = makeCounter(); //对象2 counter2(); // logs: 1 counter2(); // logs: 2 var foo = function () { console.log("/* code */") }; //直接运行不了 var foo = function () { console.log("/* code */") }();//直接运行 function ff(){ /* code */ }(); // SyntaxError: Unexpected token 出错 function ff() { console.log("/* code */") } (1); // 式子无异常,无输出 function foo() { console.log("/* code */")}; (1); //无报错 无输出 (function () { console.log("/* code */") }()); // 推荐使用这个 直接输出 (function () { console.log("/* code */") })(); // 但是这个也是可以用的 直接输出 var i = function () { console.log("/* code */") }(); //直接输出 true && function () { console.log("/* code */") }(); //直接输出 0, function () { console.log("/* code */") }(); //直接输出 !function () { console.log("/* code */") }();//直接输出 ~function () { console.log("/* code */") }();//直接输出 -function () { console.log("/* code */") }();//直接输出 +function () { console.log("/* code */") }();//直接输出 new function () { console.log("/* code */") };//直接输出 new function () { console.log("/* code */") }();//直接输出 function ff() { new function () { console.log("/* code */") }; !function () { console.log("/* code */") }(); } ff(); 直接输出
!function () { console.log("/* code */1") }(console.log("/* code */2"));//直接输出 先执行2 在执行1
<html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-1.10.2.js"></script> <script> function test() { (function($) { console.log("22222")})(jQuery);//输出 22222 (function($) { console.log($)})(jQuery); //输出 // jQuery = function( selector, context ) { //// The jQuery object is actually just the init constructor 'enhanced' // return new jQuery.fn.init( selector, context, rootjQuery ); //}, var T=1; (function(T) { console.log("11111")})(T); //输出111 (function($) { console.log("11112")})($); //输出111 } </script> </head> <body> <input type="button" value="测试执行效果" onclick="test()"> </body> </html>
var xhr1 = function () {
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
}
}();
var xhr2 = (function () {
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
}
})();