第一次看到var a=new function(){}时有点懵逼,既和var a=function(){}有点像,又和var a = new Function()有点像,但是其实它是用new创建了一个对象。
var a = new function(){console.log("调用了这个函数");}//调用了这个函数
console.log(a);//[object Object]
拆开来看就是
function fun(){console.log("调用了这个函数");}
var a = new fun();//调用了这个函数
console.log(a);//[object Object]
注意:如果函数没有return,或者返回值类型的数据时,new表达式返回的是new创建的对象,只有函数返回引用类型的数据才会覆盖掉new创建的匿名对象。
var a = new function(){
return 1
}
console.log(a);//[object Object]
var b = new function(){
return {a: 1, b: 2}
}
console.log(b);//{a: 1, b: 2}