мне кажется что ООП на JS скорее иммитирует ООП. Какой смысл долго думать о безопасности метода или о наследовании если в любой экземпляр класса можно добавить что угодно или переопределить.
Не столько при написании кода, впрочем, сколько при поддержке.
Для чего? Берёшь и выполняешь его, всё.