使用即时执行函数
var t = (function()
{
return function(_s)
{
console.log(_s);
}
})();
//或者如下
var t = function(){
return function(_s)
{
console.log(_s);
}
}();
2.使用 Function匿名函数 的方式创建匿名函数
2.1匿名函数,所有的前置参数都为参数,最后一句为表达式语句,有点像 lambda表达式
var t = new Function();
var t = new Function('return [1,2,3,4]');
var t = new Function('msg','return window.alert(msg);');
var t = new Function('num1','num2','return num1+num2;');
var t = new Function('id','name','age','return {name:name,id:id,age:age};');
2.2使用function创建函数,function不是Function,而是一个即时执行对象,即 function匿名对象
var s = new function(){
return function(s)
{
return s+',hello!';
}
};
2.3当然这种方式也可以被用来创建对象
var user = new function(name,id){ 'use strict'; this.name =name,this.id = id; }('zhangsan',12);
/**或者**/
var user = new function(){ return {name:'zhangsan',id:10249181};}
/**或者**/
var user = new function(){ this.name='zhangsan',this.id=1024;}
//==>等同 var user = new function(){ this.name='zhangsan',this.id=1024;}();
关于匿名对象,学过java的比较清楚,一般是为了只执行一次就会销毁的对象,这里js和这个原理差不多,只不过js的匿名对象 固定写法 是 new function(){....}
try doing it;