21

ある種の状態が変更されたときにトリガーされる関数がビューにあるとしましょう。名前を付けるのに最適な理由は何ですか?

  • 状態変化
  • 状態が変更されました
  • onStateChange
  • onStateChanged
4

6 に答える 6

17

個人的にはonEventName、DOM イベント ハンドラーのネイティブ命名規則を維持した名前を使用することを好みます。

イベントのようmyElement.onclick = function() { /* ... */ }に。click

だからmyEvent私はという名前のハンドラを使用していonMyEventます。

そして、 event がある場合は、 handlerstateChangeを使用します。onStateChange

しかし、実際には、この質問は、開発者の各チームと、チーム/会社内のコード スタイルの規則に固有のものです。

したがって、この種の質問の主な目標は、読みやすさを確保するために、すべての部分でコード スタイルを同じに保つことです。

したがって、チームで作業している場合は、チームのコード記述規則に固執してください。既存のコードで単独で作業している場合は、そのコード スタイルを維持するようにしてください (そのスタイルが明らかに醜くないかどうかを確認してください)。

更新: 理解。

イベントとは何ですか?大まかに言えば、プログラムの外部または内部で開始されるアクションです。つまり、システムで何かが発生します。たとえば、状態の変化 (キーボード、マウス、I/O デバイスの状態など) は関係ありません (ユーザーがクリックしたマウスまたは一部のプログラムがマウスクリック信号をシステムに送信した場合)。

ブラウザー ウィンドウが、いくつかのイベントに関する通知を受け取るためにサブスクライブされてお​​り、オペレーティング システムがそれらをできるだけ早くブラウザー ウィンドウに送信するとします。そのため、ブラウザ ウィンドウがアクティブでドキュメントにフォーカスがあるときにユーザーがマウスをクリックすると、ブラウザはドキュメントにclickイベントを発生させるよう指示します。そして、ここでonclickハンドラが呼び出しを開始します。言い換えれば、システムは、現在何らかの状態の変化が起こっていると言います。そして、私たちはこの変更を処理していますが、状態が変更されたという事実を処理していません。

ハンドラーの名前がonClicked. ハンドラーの名前は過去形なので、合理的な質問を得ることができます。 ..」。この名前は、過去に何かが起こったことを示しています。

対照的に、ハンドラーが as という名前を付けた場合、onClickそのイベントは明らかに1 回だけ発生clickし、すぐに通知されました。そして、クリック イベントを処理します。これは、マウスの状態が現在変更されたことを示す情報です ( mouse clickedではなく、 click のイベントです)。

したがって、状態が変更されたかどうかを確認する必要がある場合は、過去形の名前の方が適切です。たとえば、変数に が格納されている場合、変数の値を現時点での実際の値と比較するstate = 1関数を呼び出すことができます。ここでは、過去時制がネーミングに適しています。isStateChanged();state

于 2012-08-16T15:13:38.397 に答える
7

onStateChangedこの関数は、何らかの状態が変更されるたびにトリガーされるためです。

于 2012-08-16T15:08:18.053 に答える
3

私の賭けは期日までですstateChanged

  • stateChange注文のように見え、新しい状態のパラメーターを受け取るように見えます。
  • onStateChangeおよびonStateChangedハンドラー自体の名前ではなく、ハンドラーを格納するための追加のキーです。

私見では

于 2012-08-16T15:12:59.150 に答える
1

私は通常、2 要素のイベント名を使用します。アプリのサイズが大きくなると、状態が変化するオブジェクトが複数ある場合や、複数のオブジェクトの変更イベントをブロードキャストできるコントローラーがある場合があるため、コードと頭の両方でそれらを区別できるようにする必要があります。

Object1:event
Object2:event

どのイベント名にするかについては、個人の好みと一貫性に帰着すると思います。

于 2012-08-16T21:12:57.987 に答える