这样的写法 (function(){ /* do something */ })(); 的含义, Jav

执行匿名函数,并且匿名函数中的变量不污染全局变量空间。

代码:

<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><body><script type="text/javascript">(function(){var inside="inside";document.writeln("<p>函数0 无返回值,运行,未污染全局变量空间<br>");document.writeln("I am running in a function anonymous.<br>");document.writeln("var inside undefined :" + (typeof inside === 'undefined') + "<br>");document.writeln("var inside values: " + inside + "<br>");})();var res1 = (function () {var inside="inside";document.writeln("<p>函数1 有返回值,运行,未污染全局变量空间<br>");document.writeln("I am running in a function anonymous.<br>");document.writeln("var inside undefined :" + (typeof inside === 'undefined') + "<br>");document.writeln("var inside values: " + inside + "<br>");return 111;})();var res2 = function () {var inside="inside";document.writeln("<p>函数2 有返回值,运行,未污染全局变量空间<br>");document.writeln("I am running in a function anonymous.<br>");document.writeln("var inside undefined :" + (typeof inside === 'undefined') + "<br>");document.writeln("var inside values: " + inside + "<br>");return 222;}();var res3 = function foo() {var inside="inside";document.writeln("<p>函数3 有返回值,运行,未污染全局变量空间<br>");document.writeln("I am running in a naming function.<br>");document.writeln("var inside undefined :" + (typeof inside === 'undefined') + "<br>");document.writeln("var inside values: " + inside + "<br>");return 333;}();function bar() {var inside="inside";document.writeln("<p>函数4 有返回值,定义未运行,,未污染全局变量空间<br>");document.writeln("I am running in a naming function.<br>");document.writeln("var inside undefined :" + (typeof inside === 'undefined') + "<br>");document.writeln("var inside values: " + inside + "<br>");return 444;};var res4 = bar(); // bar运行document.writeln("<p>全局,所有匿名函数未污染全局变量空间<br>");document.writeln("var inside undefined :" + (typeof inside === 'undefined'));document.writeln("<br>");document.writeln("function foo undefined :" + (typeof foo === 'undefined'));document.writeln("<br>");document.writeln("function bar undefined :" + (typeof bar === 'undefined'));document.writeln("<br>");document.writeln("匿名函数1返回值:" + res1);document.writeln("<br>");document.writeln("匿名函数2返回值:" + res2);document.writeln("<br>");document.writeln("命名函数foo定义并调用的返回值:" + res3);document.writeln("<br>");document.writeln("命名函数bar调用的返回值:" + res4);document.writeln("<br>");</script></body></html>

执行结果:函数0 无返回值,运行,未污染全局变量空间I am running in a function anonymous.var inside undefined :falsevar inside values: inside函数1 有返回值,运行,未污染全局变量空间I am running in a function anonymous.var inside undefined :falsevar inside values: inside函数2 有返回值,运行,未污染全局变量空间I am running in a function anonymous.var inside undefined :falsevar inside values: inside函数3 有返回值,运行,未污染全局变量空间I am running in a naming function.var inside undefined :falsevar inside values: inside函数4 有返回值,定义未运行,未污染全局变量空间I am running in a naming function.var inside undefined :falsevar inside values: inside全局,所有匿名函数未污染全局变量空间var inside undefined :truefunction foo undefined :truefunction bar undefined :false匿名函数1返回值:111匿名函数2返回值:222命名函数foo定义并调用的返回值:333命名函数bar调用的返回值:444

看着书里九万五千公里的绚丽。又或是和我一样,

这样的写法 (function(){ /* do something */ })(); 的含义, Jav

相关文章:

你感兴趣的文章:

标签云: