渡一 9-2立即执行函数

只有表达式才能被执行,函数声明不能执行,必须调用

function(){...}//函数声明

(function(){...}())//表达式

 

只有表达式才能被执行符号执行,下面的声明是不能直接调用的;

function test(){
    var a=123;
}();//出错,函数声明不能被直接调用
test();


//能被函数执行的表达式,名字被自动忽略,test()找不到了
var test=function(){
    console.log('a')
}()


//传参
function test(a,b,c,d){
    console.log(a+b+c+d)
}(1,2,3,4)

 

功能:只需要执行一次,初始化函数

var num = (function(a,b,c){
    console.log(a)
    var d=a+b+c*2-2
    return d;
}(1,2,c))//w3c建议

第二种引用方法

(function(){})()

其它数学运算符号转换

//+ - ! && ||都可以转成表达式
+function test() {
    // body...
}();

 

 初始化数据 立即执行函数

var num = (function(a,b){
    console.log(a+b);
    return a+b;
}(1,2))

 

arguments方法

arguments.callee  指函数本身
func.caller 找到是谁调用的,一般没什么用var num = (function(n){    if(n==1){return 1;}

return n*arguments.callee(n-1);
}(100))


function test(){
    console.log(arguments.callee);//test
    function demo(){
        console.log(arguments.callee);//demo
    }
}

function test(){ demo(); } function demo(){ console.log(arguments.caller) } test();

 

posted @ 2021-09-16 05:19  lisa2544  阅读(23)  评论(0编辑  收藏  举报