使用方法一:
var
foo01
=
function
() //or fun01 = function()
{
var temp = 100 ;
this .temp = 200 ;
return temp + this .temp;
}
alert( typeof (foo01));
alert(foo01());
{
var temp = 100 ;
this .temp = 200 ;
return temp + this .temp;
}
alert( typeof (foo01));
alert(foo01());
function
300
300
使用方法二:
var
foo02
=
new
function
()
{
var temp = 100 ;
this .temp = 200 ;
return temp + this .temp;
}
alert( typeof (foo02));
alert(foo02.constructor());
{
var temp = 100 ;
this .temp = 200 ;
return temp + this .temp;
}
alert( typeof (foo02));
alert(foo02.constructor());
object
300
300
使用方法三:
var
foo3
=
new
Function('
var temp = 100; this.temp = 200; return temp + this
.temp;');
alert( typeof (foo3));
alert(foo3());
alert( typeof (foo3));
alert(foo3());
function
300
300
使用方法四:
var
foo4
=
Function('
var
temp
=
100
;
this
.temp
=
200
;
return
temp
+
this
.temp;');
alert( typeof (foo4));
alert(foo4());
alert( typeof (foo4));
alert(foo4());
function
300
300
关于函数初始化优先级这个问题,可以参看:" JS类定义原型方法的两种实现的区别"的回复。