本番環境の Web フロントエンド JavaScript アプリケーションでは、「公開」されるものはほとんどありません。つまり、グローバル var として宣言されるか、または にアタッチされwindow
ます。
- すべてのコードが最小化され、1 つ (またはいくつか) の js ファイルに追加されます。
- 「公開」されることはほとんどありません。つまり、グローバル var として宣言されるか、または にアタッチされ
window
ます。
ただし、開発中は、コードが読み取り可能で、複数のファイルに分割されていて、プロトタイプと関連するインスタンスにコンソールからアクセスできると、作業が楽になります。
より明確にするために(さまざまなツールで簡単に取得できる最小化は別として)、本番環境では次のようになります。
(function() {
var Greeter = function() {
};
Greeter.prototype.msg = function() {
return 'Hello, world!';
};
Greeter.prototype.greet = function() {
console.log(this.msg());
};
new Greeter().greet();
}());
このようにして、コードは何も公開せずに処理を実行します。Greeter オブジェクトもそのインスタンスも他のコードからアクセスできません。
(もちろん、これはこれを達成するための多くの方法の 1 つにすぎませんが、それは問題のポイントではありません)。
ただし、このコードのデバッグは難しく、単体テストは不可能です。
デバッグとテストの両方を可能にするために、私は通常、Greeter とそのインスタンスの両方をwindow
オブジェクトまたは他のオブジェクトにアタッチします。
したがって、開発中は次のようなものを使用します。
(function() {
var Greeter = function() {
};
Greeter.prototype.msg = function() {
return 'Hello, world!';
};
Greeter.prototype.greet = function() {
console.log(this.msg());
};
window.Greeter = Greeter;
window.greeter = new Greeter();
window.greeter.greet();
}());
このようにして、Greeter の単体テストを行い、ブラウザーのコンソールから質問してステータスを確認することもできます。
ツール、ツールのセット、またはコードを整理するための別の方法はありますか?