Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

Функция с бесконечным количеством параметров

#javascript


В JavaScript'e есть функция console.log(), в которую можно передать много параметров.
В моём проекте есть нечто подобное:



var MyObj = {
    log: function() {
        if (ENV != 'dev') {
            return;
        }
        //TODO more actions with console.log
    }
}




Есть функция, которая будет принимать параметры и передавать их в console.log().
Но как достичь её универсальности, если вызовы будут, например, такими:

MyObj.log("var1=%s,var2=%s,var3=%s", var1, var2, var3);
MyObj.log("var1=%s,var2=%s,var3=%s,var4=%s,var5=%s", var1, var2, var3, var4, var5);


Как правильно передать в console.log() N аргументов, чтобы при этом не возникало
undefined?
    


Ответы

Ответ 1



Если достаточно просто вывести все аргументы на консоль, то: ENV = "dev"; var MyObj = { log: function() { if (ENV != 'dev') { return; } console.log.apply(console, arguments); } } MyObj.log(1, 2, 3, 4, 5); Если нужно именно хитрое форматирование - то вам придется его написать вручную.

Ответ 2



Все аргументы передаваемые в функцию содержатся в переменной arguments

Комментариев нет:

Отправить комментарий