今天从跟公司牛人那学到的~避免以后忘了赶快记录下来
平时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,说是当成一个类来运行就可以了~具体的意思我明白了~但是不知道该怎么表达~有大牛的话希望能给出解释~