Olá Caique, tudo bem com você?
A lógica é basicamente a presença ou não de herança, então se uma classe tem uma função _multiplica()
e uma classe filha utiliza esse método, então esse modificador é protected
Como de fato não há nenhuma definição, muitas veremos que ele nasce como private, mas dado que uma classe necessita dessa função, acaba se tornando protected
Mas realmente, essa parte é sempre um grande problema da linguagem, por isso que dentre as últimas novidades do javacript é as classes terem um atributo privado, que é indicado pelo #
( entretanto, como foi lançado a poucos meses ainda é algo que pouquíssimo suporte, apenas a última versão do Edge e as últimas do Chrome ), e talvez o underline venha a se tornar uma convenção para o protected
Dessa maneira daqui alguns anos, provavelmente, a orientação a objetos do javacript será da seguinte maneira:
class Conta {
#saldo
Abraços e Bons Estudos!