Как я могу использовать p для замены console.log? - PullRequest
1 голос
/ 12 января 2020

Вот то, что мы обычно используем в javascript

console.log('Printing strings in Javascript');
console.log('means using console.log()');
console.log('which seems very boiler platey');
console.log('How could I do something simpler');
console.log('like "p" in Ruby, i.e.');

как

p('this sort of approach');
p('which seems cleaner?');
p('kinda like an alias')
p('but able to deal with multiple params of different types, functions, etc.');

Ответы [ 4 ]

2 голосов
/ 12 января 2020

Вы можете создать функцию-оболочку с именем p:

const p = console.log.bind(console);

Тогда p(a, b, c) будет таким же, как console.log(a, b, c).

Live Пример:

const p = console.log.bind(console);

// Now this:
p({nifty: "object"}, 42, "string");
// Has the same output as this:
console.log({nifty: "object"}, 42, "string");

Загляните в реальную консоль и убедитесь, что она обрабатывает их одинаково (интерактивный проводник объектов и т. Д. c.).

2 голосов
/ 12 января 2020

Один подход:

$ cat main.js

function FirstNames(friends) {
    for (let friend of friends) {
        p(friend);
    }
    return friends;
}

let p = function (...params) { return console.log.apply(console, params); };

p("stringy");
p("stringy", "2nd");
p("stringy", 2);
p("a", [1, 2]);
p(FirstNames(['jin', 'mia']));

$ node main.js 
stringy
stringy 2nd
stringy 2
a [ 1, 2 ]
jin
mia
[ 'jin', 'mia' ]
0 голосов
/ 13 января 2020

Другим, очень простым способом было бы использовать

const p = console.log

Обратите внимание на отсутствие паренов - нет () - это сперва споткнуло меня (у меня они были изначально) без них, я думаю super что-то вроде передачи параметров возможно. Это похоже на работу и дает те же результаты. Это коротко и просто. Есть ли недостатки?

0 голосов
/ 12 января 2020

Создайте Function с именем p и используйте его следующим образом.

function p() {
    console.log(...arguments);
}

p("hi", "bye");
...