私はReduxのチュートリアルをやっている、と私はこのようなコール見た:JavaScriptのアンダースコア "_"は何ですか?
this._render();
、それは別の場所のように定義されています:
_render() {
....
}
アンダースコア「_」とは何を?なぜ使用されていますか?
私はReduxのチュートリアルをやっている、と私はこのようなコール見た:JavaScriptのアンダースコア "_"は何ですか?
this._render();
、それは別の場所のように定義されています:
_render() {
....
}
アンダースコア「_」とは何を?なぜ使用されていますか?
これはプライベートなメソッドと変数の慣習です。 JavaScriptでは、クラスの実際のプライバシーは存在しません。
これは、オブジェクトからこれらのメソッド(「_
」で始まる)を使用しないでください。もちろん技術的にはできますが、「_
」はあなたがしてはならないことを意味します。
アンダースコア(_
)は、変数/関数名の単なる有効な文字ですが、追加機能はありません。
ただし、変数/関数をプライベートとしてマークするには、アンダースコアを使用するのが適切です。これまでの議論ではUnderscore prefix for property and method names in JavaScriptを確認することができます。
アンダースコアは識別子内の有効な文字なので、メソッドの名前は_render
です。
プライベートメソッドを示すためにアンダースコアを使用するのは、アクセス修飾子を持たない言語の共通パターンです。
private void Foo() {}
のみ、それを定義したクラス内から呼び出すことができFoo
方法:アクセス修飾子を持っているC#などの言語では、私がした方法を定義することができます。
JavaScriptではこれを行うことはできませんので、メソッドにプレフィックスとして_
という接頭辞を付けると、プライベートとして扱う必要があることがわかります。
this._foo();
このメソッドを呼び出すことはできますが、クラス定義の外で行うことはできません。
それは...何も特別でない –
http://eslint.org/docs/rules/no-underscore-dangle –