JavaScript を開発するとき、私は JavaScript コードを別々のファイルに分割してから、スクリプトを実行してファイルを連結し、結果のファイルを圧縮またはパックする傾向があります。最後に、本番サイトに含める必要があるファイルが 1 つあります。
このアプローチは通常うまくいきましたが、プロトタイプの継承に関する問題に遭遇し始めました。具体的には、あるクラスが別のクラスから継承する場合、継承が機能するためには、親クラスのファイルが既に含まれている必要があります。私が使用している連結スクリプトがファイルでいっぱいのディレクトリを単純に連結している場合、子クラスは親クラスの前にコード内で発生する可能性があります。このような:
parent_class.js
var Namespace = Namespace || {};
Namespace.Parent = function () { };
Namespace.Parent.prototype.doStuff = function () { ... };
child_class.js
var NameSpace = Namespace || {};
Namespace.Child = function () { ... };
Namespace.Child.prototype = new Namespace.Parent();
これが機能する唯一の方法は、parent_class.js が child_class.js の前に含まれている場合です。これは、連結スクリプトが親コードの前に子コードを配置する場合には発生しない可能性があります。
機能が同じになるようにこのコードを記述する方法はありますが、コードを記述する順序は重要ではありませんか?
編集:名前空間も使用していることを忘れていたので、それもコードに追加しました。これにより、少し変更される可能性があります。