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
时间: 2024-12-11 11:18:10