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"
}

Que es un objeto en JS?

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() 

POO: Objetos Literales

// 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",
  }
}

POO: Propierties

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.

Untitled

Untitled

POO: Methods

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

Untitled

Untitled

const user = {
  name: "adrian",
  lastname: "garcia",
  age: 20,
  greeting: function () { console.log("Hello")}
}

user.greeting() // "hello"

POO: this

this es la manera en la que manejamos obtenemos otras propiedades dentro del mismo objeto.