1
Create: function (title, text, orientation, trigger, layout) {
        $(this).attr
    },

トリガー パラメータは、「ホバー」または「クリック」という 2 つの非常に具体的な単語のいずれかを受け取る必要があります。この関数の実装を簡単にする良い方法が思い浮かびません。

私はいくつかの解決策を考えました:

  1. 間違ったパラメーターが送信された場合に備えて、関数内で既にパラメーターを検証し、実行を中断した直後に「console.info」を返して、開発者に間違いを知らせることができます。

  2. ENUM を作成し、それを開発者用のインターフェイスとして提供することもできます (それでも、開発者はそれを適切に使用するためにそれを読む必要があります)。

  3. この投稿を入力しているときに、オプションの標準値を設定できるので、オプションであることに気づきました。

このような状況でどのアプローチが最適かはわかりません。コードを使用する意思のある開発者は、コードを読んで実装するための最良の方法を見つけなければならないと仮定できますか、または (私が推測するように) 私が説明したような検証に関心を持つ必要がありますか? また、どれが一番いいですか?

4

1 に答える 1

0

文字列と直接比較することは、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' キーワードで呼び出される関数 (つまり、コンストラクター関数) でない限り、関数名を大文字で始めないでください。

于 2013-06-25T20:02:13.180 に答える