2

一連の設定を受け取るJavaScriptプラグインを作成していますが、必須のものとそうでないものがあります。これは実際にはRaphael.jsのプラグインですが、この質問はjQueryプラグインにも当てはまります。

私のコードは次のようになります。

jQuery.fn.myplugin = function (settings) { 
    settings = settings || {};
    var reqParam1= settings.requiredParameter1 || return; //Or throw? //Or ... ?

    /* More code */
}

プラグインが必要なすべての設定を受け取っていないと判断した場合、どのようなアクションを取る必要がありますか?明白で最も保守的な選択はそうするthrowことですが、プラグインの機能が「必須」ではない場合はどうでしょうか。「本質的」ではないということは、純粋に美的向上、またはページの残りの部分にとって重要ではないことを意味します。この場合、黙って死ぬのは正しいでしょうか?

4

2 に答える 2

2

throw必須パラメーターが欠落しているなどの致命的な問題が発生した場合に使用できます。このプラグインの機能が「必須」であるかどうかを判断するのは、呼び出し元の責任です。したがって、プラグイン呼び出しをtry .. catchブロックでラップし、メッセージをcatchブロックに記録できます。

try {
    $.myplugin( ... );
}
catch(e) {
    console.log('Feature not enabled');
}
于 2012-06-12T04:20:16.850 に答える
1

プラグインが機能できないことを意味する場合は、必須パラメーターをスローし(ただし、必須パラメーターを最小限に抑えるようにしてください)、それ以外はすべてデフォルトを使用する必要があります。

jQuery.fn.myplugin = function (settings) { 
    settings = $.extend({}, $.fn.myplugin.defaults, settings);
    if(!settings.requiredParameter1) throw "Missing requiredParameter1";

    /* More code */
}

jQuery.fn.myplugin.defaults = {
  optionalParameter1: true
}
于 2012-06-12T04:11:53.223 に答える