2017-07-11 9 views
1

ノードのjsコードベースで次の行が見えました。ノードjsでのアンダースコアの意味

_ => { return resolve(abc);} 

これは何を意味するのですか? 私は知っている=>太い矢印の機能です。この行は、約束のスニペットからのものです。

+0

これはhttps://stackoverflow.com/a/23903247/3517292の繰り返しです。 – ardev

答えて

3

これは、矢印関数の引数が使用されていないことを示します。矢印関数の引数名として_を使用します。

+0

'_'を引数として使用することは、渡されたことがわかっている使用されていない引数のプレースホルダとして使用されますが、使用するつもりはありません。 '_'はJavascriptで完全に合法的なシンボル名なので、ここでは著者の考え方にアクセスすることはできません。作者が(おそらくそうかもしれませんが)そのコンベンションを使用していたと思います。私は、実際の言語機能ではないことを証明していないため、これが「おそらく」起こっていると答えてください。 – jfriend00

+0

@ jfriend00あなたは絶対に正しいです。あなたが自分の答えを発表すれば、それ以上の運賃になるでしょう。正解はまだ選択されていません。 – yeiniel

+0

私はあなたの答えを "改善"して最高の答えにする機会を提供していました。 「編集」リンクを使用してフィードバックを組み込んで答えを改善することができます。ここでの目標は、あなたの答えを最高にすることだけです。 – jfriend00

1

このような意味はありませんか?

1

このコードでは、矢印機能の簡潔な構文(一部)を使用しています。これを行うには、あなたがこのような機能を記述します:あなたの例でそうthe docs

に応じ

var f = x => x*x; 

を、引数xは_(変数名の有効な文字)と命名されています

var f = _ => {return resolve(abc)} 

ただし、リターンや角かっこは必要ありません。それはparathesisとなり書くため

_ => resolve(abc); 

おそらく、より読みやすい方法:それはちょうどかもしれ

() => resolve(abc); 
1

他の場所で、この問題の議論の説得で、私は私のコメントを有効にします答えに。

まず、矢印の機能に関する一般的な質問はしていませんが、コードサンプルの_について興味があると思います。

渡されたコールバック関数にパラメータを宣言して名前を付けるための規約がありますが、アンダースコアをプレースホルダの一種として使用する予定はありません。このコールバックに引数が渡されていることをコードを読んでいる人にはわかりますが、この特定の呼び出しでは使用する予定はありません。存在は機能しませんが、それ以上のもの

あなたが尋ねたコード行を書いた開発者の頭に何があったのかわからず、アンダースコアが何を意味するのかはわかりませんが、先に説明した規則と一致するように見える。コールバックには1つの引数があり、コールバックの実装では使用されません。

これはその大会の使用であることを私たちの推測が真であれば、あなたが示す矢印の機能に:

_ => { return resolve(abc);} 

それはおそらく一つの引数を期待しているが、そのコールバックのこの特定の使用それを使用することを計画していないので、それを通知するために_という名前を付けました。


ここで、Javascriptではコールバックがこれと同じように単一の引数を定義する必要があるという特別な理由はありません。あなたが使用しない引数を宣言し、JavaScriptで何の要件はありませんので、

() => { return resolve(abc);} 

:コールバックはちょうどと同様に定義されている可能性があります。

コールバックは2つの引数を取り、それはあなたが使用するつもりはないし、最初の1だった、それは第二引数へのアクセスを可能にするために何かのように宣言する必要がない場合:

(_, secondArg) => { return resolve(secondArg);} 
+0

優れた応答。私は英語のスピーカーではないので、私は問題を解決することなくレスポンスでこれを提示することができませんでした:-)。ありがとう@ jfriend00。私は自分自身の答えをdownvoteしようとするが、私はさせていない。 – yeiniel

+0

@yeiniel - これがあなたの質問に答えた場合は、回答の左側にあるチェックマークをクリックしてコミュニティにその旨を示すことができます。それはまた、適切な手順に従うためにいくつかの評判のポイントを得るでしょう。 – jfriend00

関連する問題