文字列と直接比較することは、JavaScript では一般的な方法です。ENUM のような構造は実装が簡単ですが、ENUM のような構造をグローバルとして定義するか、次のようなことを行う必要があるため、通常はあまり使用されません。
application.enums.myObject.hover= 1;
application.enums.myObject.click= 2;
myObject= new application.constructors.MyObject();
myObject.create(title, text, orientation, application.enums.myObject.hover, layout)
このように、アプリケーションのみがグローバルですが、application.enums.myObject と入力するのは面倒です。
エラーの処理方法:
オプション 1: 例外をスローします。
Create: function (title, text, orientation, trigger, layout) {
if (trigger !== "hover" && trigger !== "click") {
throw "error: invalid parameter trigger";
}
},
どこかに catch 句がない限り、スクリプトがクラッシュします。場合によっては、何が問題なのかを知る方法を提供しないよりも、パーティーをクラッシュさせる方がよい場合があります。これらの例外をキャッチするつもりなら (スクリプトをクラッシュさせるのではなく)、エラーなどのクラスを作成して適切に行うことをお勧めします。
オプション 2: null を返します。
Create: function (title, text, orientation, trigger, layout) {
if (trigger !== "hover" && trigger !== "click") {
return null;
}
},
このアプローチは、関数の戻り値を使用する場合に適しています。デバッグ時に、戻り値を使用しようとすると、「オブジェクトには X という名前のプロパティがありません」というエラーが表示されます (または、そのように使用すると、値が「null」文字列に強制されます)。
オプション 3: エラーを黙って無視し、何もしません。スクリプトが自然にクラッシュするか、何もしません。非推奨
所見:
1 - プロダクション コードでコンソール オブジェクトを使用しないでください。これは標準の一部ではなく、開発者コンソールを開かない限り、IE は Web ページに公開しません。
2 - 'new' キーワードで呼び出される関数 (つまり、コンストラクター関数) でない限り、関数名を大文字で始めないでください。