2017-06-24 33 views
0

私はReduxのチュートリアルをやっている、と私はこのようなコール見た:JavaScriptのアンダースコア "_"は何ですか?

this._render(); 

、それは別の場所のように定義されています:

_render() { 
    .... 
} 

アンダースコア「_」とは何を?なぜ使用されていますか?

+1

それは...何も特別でない –

+0

http://eslint.org/docs/rules/no-underscore-dangle –

答えて

3

これはプライベートなメソッドと変数の慣習です。 JavaScriptでは、クラスの実際のプライバシーは存在しません。

これは、オブジェクトからこれらのメソッド(「_」で始まる)を使用しないでください。もちろん技術的にはできますが、「_」はあなたがしてはならないことを意味します。

3

アンダースコア(_)は、変数/関数名の単なる有効な文字ですが、追加機能はありません。

ただし、変数/関数をプライベートとしてマークするには、アンダースコアを使用するのが適切です。これまでの議論ではUnderscore prefix for property and method names in JavaScriptを確認することができます。

1

アンダースコアは識別子内の有効な文字なので、メソッドの名前は_renderです。

プライベートメソッドを示すためにアンダースコアを使用するのは、アクセス修飾子を持たない言語の共通パターンです。

private void Foo() {} 

のみ、それを定義したクラス内から呼び出すことができFoo方法:アクセス修飾子を持っているC#などの言語では、私がした方法を定義することができます。

JavaScriptではこれを行うことはできませんので、メソッドにプレフィックスとして_という接頭辞を付けると、プライベートとして扱う必要があることがわかります。

this._foo(); 

このメソッドを呼び出すことはできますが、クラス定義の外で行うことはできません。

関連する問題