Es un paradigma de programacion → Es decir, es un mindset de programacion → Que pone como principal instancia a los objetos, y en JS los objetos se ven asi…
const obj = {
keyObject: "valueObjec"
}
Casi todo…
// estos son tipos de datos primitivos
console.log(typeof "hello")
console.log(typeof 100)
console.log(typeof true)
// estos son objetos
console.log(typeof {}) // los objetos son objetos
console.log(typeof []) // los arrays sob objetos
console.log(typeof new Date()) // dates son objetos
console.log(typeof /{w}/) // regex son objetos
console.log(typeof new String('holo')) // el resultado de crear un primitivo mediante una clase da como resultado un objeto
Los objetos contienen metodos
// este string tiene este metodo,
// pero como es posible que lo pueda ejecutar si es un string y no un objeto?
"hello".toLowerCase()
// Este es un objeto literal
console.log({})
// y su funcion recide en guardar toda la data en una misma entidad
const user = {
name: "adrian",
lastname: "garcia",
age: 20,
hobbies: [ "walking", "reading", "coding"],
address: {
city: "tepic",
state: "nayarit",
country: "mexico",
}
}
Cada uno de los keys de un objeto, en caso del objeto user sus propiedades son name, lastname, etc. Bajo el POO todas estas son propiedades.


Los objetos no solo son datos, tambien pueden hacer cosas. Los metodos se refieren a funcionalidades o acciones que puede operar nuestro objeto.


const user = {
name: "adrian",
lastname: "garcia",
age: 20,
greeting: function () { console.log("Hello")}
}
user.greeting() // "hello"
this es la manera en la que manejamos obtenemos otras propiedades dentro del mismo objeto.