定义并且立即执行JS匿名函数有几种方法哪?我的结论是有无数种,请看:
以上可能call和apply的语义比较清晰,其他方式还是比较令人费解的。
/*最流行的写法*/
(function(){
alert("run!")
})();
/* !号可以有1~正无穷个,所以这一种就可以衍生无数种方式 */
!!!(function(){
alert("run!")
})();
(function(){
alert("run!")
}).call();
(function(){
alert("run!")
}).apply();
(function(){
alert("run!")
}());
void (function(){
alert("run!")
})();
~(function(){
alert("run!")
})();
~!(function(){
alert("run!")
})();
/* 这个最好玩 */
delete (function(){
alert("run!")
})();
+(function(){
alert("run!")
})();
-(function(){
alert("run!")
})();
setTimeout(function(){
alert("run");
},0);
/*自由变态组合,可以衍生出无数种方式*/
~+-!(function(){
alert("run!")
})();
以上可能call和apply的语义比较清晰,其他方式还是比较令人费解的。