今天从跟公司牛人那学到的~避免以后忘了赶快记录下来

平时JS的function的返回值可以是一个数值,也可以是一个对象({name:abc,age:123}),更可以是一个函数(这里我是第一次听说),从网上搜了搜,发现很多都是写的像下面的代码一样:

1 (function(){
2     var x=1;
3     return function(){
4         x=x+1;
5         alert(x);
6     }
7 })();

看上去好像没什么问题~但是根本不运行~坑爹呢~

后来问过别人才知道原来想要运行的话要加一个NEW:

1 (function(){
2     var x=1;
3     return new function(){
4         x=x+1;
5         alert(x);
6     }
7 })();

在返回的函数前加一个new,说是当成一个类来运行就可以了~具体的意思我明白了~但是不知道该怎么表达~有大牛的话希望能给出解释~