Если его поместить в обработчик другого клика - да. А вам надо, насколько я понял, чтобы он как бы сам собой происходил, без участия пользователя - так не будет.
Nik Vik, значит, вы что-то неправильно делаете. Убедитесь, что нигде не пытаетесь при передаче функции в качестве параметра её вызвать. Ну, то есть, например: у вас было showShelfMachine = {() => showMachine(s)}, надо сделать showShelfMachine = {showMachine}, а вы сделали showShelfMachine = {showMachine(s)}.
Александр Корегин, да здесь всё является одной большой ошибкой - потому что задание составлено умственно отсталым. Так и передайте автору, если знаете кто он.
Ну а конкретно, что поменять, просто чтобы код заработал... Метод totalSalesReceipt, не надо вызывать его как статический, он таким не является. Ну и у него внутри замените this.totalPrice() на Basket.totalPrice.call(this).