2017-07-09 13 views
0

Javascriptの無名関数の外で値を取得しようとしています。基本的には、この関数を4に戻したいと思います。簡単な修正があるように感じますが、わかりません。ありがとう!Javascriptの無名関数から変数を設定する

function a(){ 
    var x = 1; 
()=>{ 
    x = 4; 
    } 
    return x; 
} 
+2

あなたは内側の関数を呼び出すことはありません。 – Emissary

+1

匿名関数は呼び出されません。しかし、なぜあなたは単純に 'return 4'の代わりに使うのでしょうか?実際のコードを投稿してください。 – Bergi

答えて

5

あなたは内部関数を起動する必要がありますが、それは匿名なので、それはすぐに呼び出される関数式になることがあります。また、匿名関数には1つのステートメントしかないので、必要に応じて中括弧を省略することができます。あなたがこれを行うにしたいと思うことはかなり奇妙な

1

あなたの例では、関数を定義しますが、何もにそれを実行しているではありません。おそらくIIFEを使用してみてください:

function a(){ 
    var x = 1; 
    (()=>{ 
    x = 4; 
    })(); 
    return x; 
} 
+0

括弧()の最後のセットが外側にある必要があります。そうしないと、エラーが発生します。 –

+0

ありがとうございました。太い矢印の構文の前にはこれは当てはまりませんでした;) –

1

function a(){ 
 
    var x = 1; 
 
    (() => x = 4)(); 
 
    return x; 
 
} 
 

 
console.log(a());

が、ちょうどあなたが内部の関数を呼び出すことを確認してください。これは、Immediately-invoked関数式構文を使用して実行できます。

function a(){ 
 
    var x = 1; 
 
    (()=>{ 
 
    x = 4; 
 
    })() 
 
    return x; 
 
} 
 

 
console.log(a());

関連する問題