1

としてコメントされている以下のコードを使用して、配列のようなオブジェクトが渡されたことと、関数が渡されたことを簡単に検証できますvalidation here

$P.someKey = function (obj, func, con) {
    var key;

    // prevent type errors
    // must be !(null or undefined) and a function
    if (obj != null || typeof func !== 'function') {  // validation here
        return false;
    }
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {

            // if the function passes back a truthy value,
            // the loop will terminate
            if (func.call(con, obj[key], key, obj)) {
                return true;
            }
        }
    }
    return true;
};

一貫性を保つために、正しいコンテキスト値が渡されたことを検証する方法はありますか、それとも call() メソッドがこれを行うため、これは必要ありませんか?

私がチェックすることについて考えるほどobj != null(nullとundefined、プロパティを持たない2つのJSタイプのみをチェックします)は不要であり、for inステートメントはこれらを除外します。

4

0 に答える 0