Heim  >  Artikel  >  Web-Frontend  >  Analyse zweier häufiger Situationen beim Schließen von js

Analyse zweier häufiger Situationen beim Schließen von js

一个新手
一个新手Original
2017-09-22 10:24:321145Durchsuche

//闭包两种情况  1:函数作为返回值
function fn() {
    var max =10;
    return function bar(x) {
        if(x > max){
          console.log(x)
        }else{
            console.log(666)
        }
    }
}
var f1=fn(),max = 100;
f1(15)    //15
//这里fn()赋给f1,调用f1时,即执行bar函数,此时x=15,
//max的取值需是创建该函数的作用域内,即max=10;最后输出15.
//2:函数作为参数传递
    var max=10,
        fn=function (x) {
            if(x > max){
                console.log(x)
            }else{
                console.log('000')
            }
        };
        (function (f) {
            var max = 100;
            f(15)
        })(fn)
    //这是第二种情况,fn函数作为f参数,f(15)就是执行 fn(15);
    //此时x=15,max的取值应该是创建fn函数的作用域内取,即10,输出结果是15;

Das obige ist der detaillierte Inhalt vonAnalyse zweier häufiger Situationen beim Schließen von js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn