OOP is a way of thinking about data where the data is forcefully bonded to the functions that manipulate said data. Access specifiers are mostly just enforced documentation for how your code is used, and I don't think they're necessary when adding ingredients to the OOP soup so to speak.
Given that way of thinking about OOP, javascript has everything else you mentioned. In a way you can think of javascript as "unopinionated OOP" just like it's "unopinionated FP"; it gives you flexibility.
Also, I don't think you should go around calling yourself a Functional programmer or an object oriented programmer, any more than a carpenter calls themselves a hammerer or a sawer; they're just tools in the tool box.