javascript - Résoudre le problème js. Pourquoi le résultat est-il 5?
扔个三星炸死你
扔个三星炸死你 2017-07-07 10:34:36
0
3
992
      Document 
扔个三星炸死你
扔个三星炸死你

répondre à tous (3)
女神的闺蜜爱上我

Mémoire

let functionA = function (a) { this.a = a return function (b) { return this.a + b } } let argA = function (a, b) { return a debugger }(1, 2) // 实际上 argA 就等于 1,** 这个地方的 b 没有被用到 **

La formule originale est simplifiée en :

let test = functionA(argA)

Une fois cette phrase exécutée,testest en fait

function (b) { return this.a + b } // ** 这是一个带一个参数的函数,执行 test(4) 时 b 就是 4 **

Et en ce momentthis.a等于1。因此test(4)结果为5

    黄舟

    Il est évidemment 5 heures

    var test = function(a){ this.a = a; return function(b){ return this.a + b; } }(function(a,b){ return a; }(1,2))

    Répartition

    var test = function(a){ this.a = a; return function(b){ return this.a + b; } } var getA = function(a,b){ return a; } test(getA(1,2))(4);

    Si vous ne comprenez toujours pas cela, vous devez apprendre les bases

      typecho

      Nous devons d'abord comprendre que la variable test est en fait une fonction, comme suit

      .
      var test = function(b){ return this.a + b; }

      La partie extérieure est une fonction qui est exécutée immédiatement. Premièrement,

      .
      function(a,b){ return a; }(1,2)

      Le résultat de cette partie est 1, c'est-à-dire que le code peut être simplifié à :

      var test=(function(a){ this.a=a; return function(b){ return this.a+b; } }(1));

      Dans le code ci-dessus,a=1, donc dans test(4), on obtient :

      var test=(function(a){ // a = 1 this.a=a; return function(b){ // b = 4 return this.a+b; // 得到 1 + 4 } }(1));
        Derniers téléchargements
        Plus>
        effets Web
        Code source du site Web
        Matériel du site Web
        Modèle frontal
        À propos de nous Clause de non-responsabilité Sitemap
        Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!