1

だから、私はJavaScriptのスキルを向上させ、オブジェクトをもっと(そして正しく)使用するようにしようとしています。ここで我慢してください。

したがって、この例を見てください:http: //jsfiddle.net/rootyb/mhYbw/

ここでは、次のそれぞれに個別の方法があります。

  • ajaxデータのロード
  • ロードされたajaxデータを使用する

明らかに、データを使用する前にロードが完了するまで待たなければならないので、コールバックとしてデータにアクセスしています。

私が今持っているように、それは機能します。ただし、initDataコールバックをloadDataメソッドに直接追加するのは好きではありません。データをロードして、使用する前に何かをしたい場合はどうすればよいですか?データを処理するときに実行するメソッドが他にもある場合はどうなりますか?このように連鎖すると、IMOはすぐに判読できなくなります。

これを行うためのより良い、よりモジュール化された方法は何ですか?

学習のために、jQueryに依存しないもの(魔法のjQueryの方法さえあれば)が好きです。

(また、この例では他のことを恐ろしくしていると確信しています。私が犯している他の間違いも指摘してください。ダグラス・クロックフォードのJavascript-The Good Parts、さらにはランクアマチュア、それは非常に理にかなっています、しかし私はまだそれのすべてに頭を包んでいません)

ありがとう!

4

1 に答える 1

0

違うはずのことはあまり見当たりません。ここでフィドルの更新バージョンを作成しました。しかし、私が変更したいくつかのポイント:

  • varローカル変数のキーワードを使用します(例: self
  • 一時的な状態をオブジェクトの状態として追加しないでください。たとえば、ajaxData使用する可能性が高いのは1回だけです。
  • 可能な限りカプセル化する:loadDataオブジェクトを使用して呼び出す代わりにajaxURL、データをロードするURLをオブジェクトに決定させます。

最後にもう1つ、将来発生する可能性がある場合でも、まだ持っていない要件を満たそうとしないでください(「もしも...?」の質問を参照しています)。試してみると、その機能が必要ないか、要件が過去に期待していたものとわずかに異なることがわかるでしょう。新しい要件がある場合は、いつでもモデルをリファクタリングしてそれらを満たすことができます。したがって、変更のために設計しますが、潜在的な変更のためには設計しません。

于 2012-09-07T16:49:05.107 に答える