2017-09-21 4 views
0

JavaScriptは宣言内の関数式にどのように値を渡しますか?私はヘッドファーストのJavaScriptを通じて作業と例を持ってい

function addN(n) { 
 
     var adder = function(x) { 
 
         return n + x; 
 
        }; 
 
     return adder; 
 
    } 
 
    
 
    var add2 = addN(2); 
 
    
 
    console.log(add2(10)); 
 
    console.log(add2(100));

ADDNは(2)ADD2に割り当てられますが、何もは、xに割り当てられていないされます。しかし、コードを実行すると、引数10と100が明らかにxに渡されます。 JavaScriptは10と100をx値に渡す方法をどのように知っていますか?

+0

'add2(10)'では、変数 'x'に' 10'が代入されます。 –

+0

'add2 = function(x){return 2 + x; }; ' – epascarello

+1

' addN'は関数を返します。あなたの質問は、 'var add2 = addN(2);'行の前に何もパラメータ 'n'に割り当てられていない理由を尋ねるようなものです。 – Carcigenicate

答えて

2

あなたがこれを行う:

var add2 = addN(2); 

変数add2が効果的になりましたこれです:

function(x) { 
    return 2 + x; 
} 

その機能自体addN()の戻り値ですので。あなたはさらにこれを行うとき(JavaScriptで関数が他の値のような変数に割り当てることができる値であることに注意してください。)

だから:

add2(10); 

をあなたはそう、その機能に10を渡していますx10になります。

関連する問題