<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
// 匿名外层函数
(function( window, undefined ) {
// 内层函数方法a
var a = function(){
alert("初始化开始");
obj.constructor("参数", 1);
}
// 内层函数方法b
var b = function(){
return obj;
}
// 外层函数的局部变量
obj = {
type:0x01,
open:function(){
alert("open" + this.param + "," + this.num);
},
close:function(){
alert("close" + this.param + "," + this.num);
},
constructor:function(param, num){
this.param = param;
this.num = num;
}
};
window.a=a;
window.b=b;
})(window);
function test(){
var k = b();
k.open();
k.close();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="test" ONCLICK="test();">
</BODY>
<script language="javascript" type="text/javascript">
a();
</script>
</HTML>
再一个一般例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript" type="text/javascript">
function outer(){
alert("outer");
var i = 0;
var inner = function(){
i++;
alert(i);
};
return inner;
}
var t = outer();
t();
t();
t();
t();
</script>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="调用" ONCLICK="t();">
</BODY>
</HTML>
最后一个类似第一个例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript" type="text/javascript">
(function (window){
alert("outer");
var i = 0;
var inner = function(){
i++;
alert(i);
};
window.inner = inner;
})(window);
inner();
inner();
inner();
</script>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="调用" ONCLICK="inner();">
</BODY>
</HTML>