12

ブラウザーの違いを考慮して、関数の実行時割り当てを使用しています。ただし、サポートされていないブラウザーの場合、JavaScript エラーがスローされないように、空の関数を返したいと考えています。

しかし、jslint は空の関数について文句を言います。これを行うjslintの幸せな方法は何ですか?

空のブロック。

$R.functionNull = function () {
    // events not supported;
};

$R.Constructor.prototype.createEvent = (function () {
    if (doc.createEvent) {
        return function (type) {
            var event = doc.createEvent("HTMLEvents");
            event.initEvent(type, true, false);
            $NS.eachKey(this, function (val) {
                val.dispatchEvent(event);
            });
        };
    }
    if (doc.createEventObject) {
        return function (type) {
            var event = doc.createEventObject();
            event.eventType = type;
            $NS.eachKey(this, function (val) {
                val.fireEvent('on' + type, event);
            });
        };
    }
    return $R.functionNull;
}());
4

4 に答える 4

15

関数に本体を追加して、次のように返すことができますundefined

$R.functionNull = function() {
    // Events not supported.
    return undefined;
};

これは、「真に空の」関数と同じセマンティクスを保持し、JSLint を満たす必要があります。

于 2013-06-10T14:28:14.487 に答える
10

ラムダ式を使用します。

$R.functionNull = () => void 0;
于 2018-02-07T08:26:06.127 に答える