1

次の関数を検討してください。

function interpolate(color1, color2, progress) {};

すべての引数を渡す必要があり、color1 と color2 は色オブジェクトのインスタンスである必要があり、progress は数値である必要があります。

タイプをチェックするか、単純に try/catch ブロックをロジックにラップして失敗するかどうかを確認する方が速いですか?
失敗した場合は、すべての引数が存在し、正しいことを確認して、説明的な期待を投げることができます。

4

1 に答える 1

2

try/catch誤ったパラメーターをキャッチするために a に依存するのではなく、すばやく失敗して事前にチェックを行う方がよいと思います。

lengthのプロパティをチェックすることで、すべての引数が渡されていることを確認できます。また、問題の関数のプロパティをargumentsチェックすることで、関数シグネチャに含まれるパラメーターの数を確認できます。length

function interpolate(color1, color2, progress) {
    if (arguments.length !== arguments.callee.length) {
        throw "wrong number of arguments passed";
    }
};

ここで、が期待するタイプのオブジェクトであること確認し、progress が number であることを確認するケースですcolor1color2

于 2012-05-13T22:16:16.353 に答える