0

JavaScript オブジェクトを拡張およびマージするための 2 つのメソッドを作成しました。悪い質問かもしれませんが、私はそれが正しいかどうか確信が持てません。コードを見て、何か改善する必要があるかどうか、何か間違ったことをしているかどうかを教えてもらえますか (コードは一見しただけで機能します)

merge: function (a, b) {
    var copy = {};
    CL.extend(copy, a, [HTMLElement, Array]);
    CL.extend(copy, b, [HTMLElement, Array]);
    return copy;
},

extend: function extend(a, b, excludeInstances) {
    for (var prop in b)
        if (b.hasOwnProperty(prop)) {
            var isInstanceOfExcluded = false;
            if (excludeInstances)
                for (var i = 0; i < excludeInstances.length; i++)
                    if (b[prop] instanceof excludeInstances[i])
                        isInstanceOfExcluded = true;

            if (typeof b[prop] === 'object' && !isInstanceOfExcluded) {
                a[prop] = a[prop] !== undefined ? a[prop] : {};
                extend(a[prop], b[prop], excludeInstances);
            } else
                a[prop] = b[prop];
        }
}
4

0 に答える 0