JS方法后面加括号

相信各位开发的大神们,在开发工作中用过类似

function(){}()

这样形式的方法。有时没用的时候,效果出不来,一不小心用了之后效果就出来了,我也是莫名其妙,因为前段时间做项目时就遇上这问题。那么它是怎么一回事?

这属于js匿名函数的一种!
这种写法可以看做是私有的内部类,一般出于加载时就需要立即执行的代码可以这样来些,
第2个就是避免与其它的名称相冲突.
给你举个例子看看:
(function(p1,p2){alert(p1+p2);})(1,2);
实际就相当与
function test(p1,p2){
   alert(p1+p2);
}
test(1,2);
(function(){})();
匿名方法的好处,上面也有提到.
1.其它外部调用不到,相对安全.
2.可用于onload事件保证不与其冲突.
3.可看做线程安全.

下面介绍一下它的调用
var fnc = function(){alert('x');},
这里function如果不赋值给fnc那么它就是一个匿名函数,这种函数我们称为回调函数.调用方式fnc();

下面是匿名函数的调用。
有返回值的调用函数
得到返回值。强制运算符使函数调用执行
<1>
(function(p1,p2){
    return p1+p2;
}(1,2)); 

强制函数直接量执行再返回一个引用,引用在去调用执行
<2>
function(p1,p2){
    return p1+p2;
})(1,2);

无返回值的调用
<3>
   void function(p1) {
          return p1++;
    }(2);

测试function test(){
     return (function(p1,p2){
       return p1+p2;
     })(1,2);
    //等以上几种情况.
 }
alert(test());
结果33undefined

你可能感兴趣的:(echarts)