2012-01-26 7 views
1

最近私はプロジェクトにExt.JSを使用しました。私はJavaScriptをもっと "Cのように"キーワードの継承は「拡張」、クラス定義はExt.defineを使用します。クラスで簡単に作業できるようにするjqueryと結合するライブラリ(作成/継承など)

私はExtを愛していますが、通常のウェブサイトを作成するのに適しているとは思いますが(私は管理Webアプリケーションの方が好きです)、通常はカスタムグラフィックとアニメーションが必要です多くのDOM操作(Extで、すべてがクラスに統合されています)。

私はJQueryを、javascriptの「クラス」の部分だけを扱うライブラリと結合したいと考えています。 jqueryについて何もする必要はありません。私のコードをオブジェクト指向のものとして記述するだけです。

私はすでにExtとJQueryを使用しているので、私のJavaScript開発フレームワークを変更したくありません。十分だと思います。提案

編集1用

ありがとう:

this questionのように見えるが、すでに私の(一部で)応答しています。 2009年の質問ですので、私が見なければならない他の図書館があるかどうかを知りたいと思います。

私はJS.Classの使用について考えていますが、base2には自然な構文がありません。 Jooseは私が必要とする以上のことをしています。JS.ClassはRubyからインスピレーションを受けています(私にとっては大丈夫です)。間違いなくそれは私のためにもっと自然に見えます。

答えて

0

div要素を持っているでしょう

を実装するのは簡単ですさまざまな部分で自分のライブラリを拡張することができます(あなたはOOPの仕方でそれを動作させる必要があります)。このexpecially

jquery class inheritance

:ここでは、この答えに私をもたらしたソースを見つけることができる私が言うしようとしています何 Has anyone used JS.Class and liked it?

1

私もOOPを書くのが好きです。これが私のやり方です!

(function() { 
    MySite = { 
     ... some basic functions that involve whatever javascript libraries 
    } 
})(); 

は、その後、私はちょうどそのセレクタのもののために、jQueryのを好む、

MySite.ui = { 
    uiButton: function($buttons) { 
     $.each($buttons, function() { 
      var $this = $(this), 
       settings = $this.data("settings"); 

      $this.click(function() { 
       if (settings.type == 0) { 
        MySite.handleLocationChange(settings.location); 
       } 
      }); 
     }); 
    } 
} 

だから私はいくつかのものをどのように行う、明らかにこれは独立したライブラリであるthatsのUI部を作りたいです。しかし、私はJS.Classは本当によくjQueryを使って結合された作品のように見えるので、私は私が自分で問題を解決し

<div class='uiButton'data-settings='{"type":"0"}'>MySweetButton</div> 
<script type='text/javascript'>MySite.ui.uiButton($(".uiButton"));(</script> 
+1

は、私はjQueryのを愛していることです。だから私は私のフロントエンド用のoop(like..ish)APIを構築する。これはPAYPALやFB(facebook)のようなものです。彼らは、この「静的な」構造のようなものをすべて関数のスタックに積み重ねます。 SOの好きなOOPが、それはjavascriptの方が適しています。 – Michael

+0

あなたの提案はすばらしく、私はそれに固執すると思いますが、何かが欠けているので答えとしてマークすることはできません:どのように私は継承を処理できますか?私はこのすべてを処理するjqueryプラグインのようなもので大丈夫です。どうもありがとう。 –

+1

これは本当です。これで、継承を扱うのは変だ。しかし、あなたは関数が定義された複数の方法を潜在的に持つことができ、 '$を持つことができます。extend(library1、library2) 'しかし、私はこれが潜在的に危険であると見ることができました...私は完全に質問に答えなかったので、応答とフィードバックに感謝します。 – Michael

関連する問題