1

多くのJavascriptクラスで物事を簡単にする方法を考えています。別のファイルを使用したいのですが、そうしないと、1000行を超えるファイルが得られます。今、分けています。

以前は、1 つのファイルで 1 つの関数 jQuery ドキュメントが用意されており、内部にはクラスが定義されていました。したがって、地球空間は汚染されていません。

ファイルに分割するとき、次のように、それらのクラスを保持する 1 つのオブジェクトを使用することだけを考えます。

globalobject = {

};

globalobject.class1 = {
    // code
}

globalobject.class2 = {
    // code
}

しかし、私は書くのが嫌いglobalobject.classnameです。すべてが 1 つのファイルで見栄えが良くなりました。

別のオプションは、pre_class1、pre_class2 などのプレフィックスを使用することですが、これも理想的ではありません。

何とかrequirejsを助けることができるかもしれませんが、簡単に見てみましたが、すばやく使用する方法がわかりませんでした.

助言がありますか?ところで、マリオネットでバックボーンも使用していますが、マリオネットは初めてです。いくつかのモジュールもあるのを見てきましたが、それでも私にとってはまだ簡単な方法ではありません.

それとも、マリオネット モジュールや requirejs ライブラリを理解できなくなるまで、長いファイルを分割しようとするべきではありませんか?

4

3 に答える 3

1

アンダースコアのメソッドを使用しextendて、基本クラスに関数を追加します。

// file1
var object = {
  foo : function () {...}
}

_.extend(object, objectFromFile2);

// file2
var objectFromFile2 = {
  bar : function () {...}
}

あなたは今持っていobject.fooますobject.bar

実際の質問が「file1 から file2 にコードを取得する方法」である場合は、RequireJSを参照することをお勧めします。

于 2013-08-30T10:00:43.737 に答える
0

globalobject表記を再利用し続ける必要はありません。

できるよ:

// define the class in local scope
function MyClass() {};
MyClass.prototype.myFunction = function () {};
MyClass.prototype.myOtherFunction = function () {};

// then export it
globalobject.MyClass = MyClass;
于 2013-08-30T09:44:53.093 に答える