<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function alt(s) { document.write(s); } function show(){ alert(chao.myfunc()); } var chao = new Object(); (function(_obj){ _obj.myfunc = function(){ return "这是 超 的命名空间"; }; })(chao); </script> </head> <input type="button" value="test" onclick="show()"/> <body> </body> </html>
由于函数是一个封闭的作用域范围,并且可以嵌套函数,所以可以使用这种匿名自执行函数来实现封装自己的所有函数和变量。
从而避免来自多个开发者的多个函数相互冲突,并且,他们位于同一个函数中所以可以相互应引用。
由于外部无法引用函数内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。这同时也相当于定义了一个命名空间
来自不同的开发者的函数方法只位于自己的命名空间里,
示例代码里,就相当于创建了一个 chao 的命名空间。