Удержание аргумента шаблона класса в переменных-членах

Для моего проекта мне все еще нужно поддерживать IE7 и работать с большим вводом для кодирования.

На основе кода, предложенного Джо Дайддейлом, и, как было предложено в комментарии Мариуса, можно улучшить производительность с IE7, построив результат с помощью массива вместо строки.

Вот пример для кодирования:

var encode = function (input) {
    var output = [], chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0;

    input = _utf8_encode(input);

    while (i < input.length) {

        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
            enc4 = 64;
        }

        output.push(_keyStr.charAt(enc1));
        output.push(_keyStr.charAt(enc2));
        output.push(_keyStr.charAt(enc3));
        output.push(_keyStr.charAt(enc4));

    }

    return output.join("");
};
1
задан 1201ProgramAlarm 6 March 2019 в 17:32
поделиться