Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Qué es un objeto en JavaScript

4/17
Recursos

Aportes 175

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Un objeto en JavaScript es una instancia del prototipo Object que es creado de forma “nativa” por Js… jajaja creo que esa definición empieza a estar en un ámbito “existencial”.

Este es un resumen de conceptual de lo presentado en esta clase. Ojalá a alguien le sea útil.
.
.

Objeto literal

Los objetos literales se distinguen de los objetos de la POO porque no son instancias de un prototipo creado por el desarrollador.
.
Sin embargo los objetos literales son instancias del prototipo Object creado por defecto en JavaScript.
.

const Natalia = {
	'Name' : 'Natalia',
	'Age' : 20,
	'Rank': 2000, 
};

.
Prototipo

Un prototipo es una estructura de código a partir de la cual se crean objetos, ya que guarda los atributos y métodos que luego podrán ser heredados por sus instancias.
.
Podemos pensarlo como un “molde” de objetos.
.

function Student() {
	this.name = 'Nombre';
	this.age = '18';
	this.points = '750';
}

const Juanita = new Student();

.
Objeto

Los objetos son estructuras de datos formadas por métodos y atributos, los cuales hereda de su prototipo padre.
.
De modo que los objetos son son instancias de ese prototipo, particularmente cuando dicho prototipo fue creado por el desarrollador (en caso contrario se llaman objetos literales).
.

Atributos

Dentro de los objetos se pueden guardar atributos para guardar en ellos la información la información que se les asocia. Así, toda la información del objeto se guarda en sí mismo.
.

Métodos

Dentro de los objetos también pueden guardarse métodos, los cuales son funciones que, entre otras cosas, permiten actualizar la información guardada en los atributos de forma segura.
.

Atributo __proto__

Es el nombre que se le da al atributo donde se guardan los métodos que las estructuras de datos tienen por defecto en JavaScript.
.
El atributo __proto__ se hereda a partir de los prototipo por defecto de JavaScript para cada estructura de datos en particular, por ejemplo de los prototipos Object y Array.
.
El atributo __proto__ también se hereda a los objetos, ya que éstos son a la vez instancias de algún prototipo creado por el desarrollador y del prototipo Object.

14:50 Fuimos Timados.jpg

¿Qué es “this” (este)?
Es posible que hayas notado algo un poco extraño en nuestros métodos. Mira esto, por ejemplo:

saludo: function() {
  alert('¡Hola!, Soy '+ this.nombre.pila + '.');
}

Probablemente te estés preguntando qué es “this”. La palabra clave this se refiere al objeto actual en el que se está escribiendo el código, por lo que en este caso this es equivalente a la persona. Entonces, ¿por qué no escribir persona en su lugar? Como verás en el artículo JavaScript orientado a objetos para principiantes cuando comenzaremos a crear constructores, etc., this es muy útil: siempre asegurará que se usen los valores correctos cuando cambie el contexto de un miembro (por ejemplo, dos diferentes instancias de objetos persona) pueden tener diferentes nombres, pero querráx usar su propio nombre al decir su saludo).

Vamos a ilustrar lo que queremos decir con un par de objetos persona simplificados:

var persona1 = {
  nombre: 'Chris',
  saludo: function() {
    alert('¡Hola!, Soy '+ this.nombre + '.');
  }
}

var persona2 = {
  nombre: 'Brian',
  saludo: function() {
    alert('¡Hola!, Soy '+ this.nombre + '.');
  }
}

En este caso, persona1.saludo() mostrará “¡Hola!, Soy Chris”; persona2.saludo() por otro lado mostrará “¡Hola!, Soy Brian”, aunque el código del método es exactamente el mismo en cada caso. Como dijimos antes, this es igual al objeto en el que está el código; esto no es muy útil cuando se escriben objetos literales a mano, pero realmente se vuelve útil cuando se generan objetos dinámicamente (por ejemplo, usando constructores) Todo se aclarará más adelante.

Resumen de la clase:

Vivimos en una sociedad donde todo es un objeto.

Un objeto en JavaScript es una colección de propiedades. Una propiedad en JavaScript es simplemente una asociación entre un nombre (llave) y un valor. Cuando este valor es una función, podemos decir que se trata de un método.
 
Los objetos en JavaScript, al ser un lenguaje basado en prototipos, heredan propiedades de otros objetos por medio del prototipo.
 
Podemos construir objetos de dos formas: De la “nada” (o también llamado objeto literal) o clonando un objeto ya existente. En la mayoría de lenguajes que soportan prototipos existe una clase raíz (por lo general llamada Object) que tiene las propiedades mínimas necesarias para la creación de objetos.

Conceptos:
Objeto: Instanciación de una Clase, Prototipo, o Objeto Prototipo.
Prototipo: Agrupación de métodos donde un objeto específico tiene acceso.
Objeto Prototipo: Es un objeto omnipresente preestablecido, dando por resultado que todo objeto instanciado en javascript será heredado directa o indirectamente del Objeto Prototipo y mediante el atributo __proto__ vamos se podrá acceder a su respectivo prototipo.
En imagen podemos ver esta herencia o también llamada Prototype Chain( ver enlace );

El final del video

Juan compartiendo fake news. Se me cayó un ídolo jajaja

Herencia y la cadena de prototipos
JavaScript provoca cierta confusión en desarrolladores con experiencia en lenguajes basados en clases (como Java o C++), por ser dinámico y no proporcionar una implementación de clases en sí mismo (la palabra clave class se introdujo en ES2015, pero sólo para endulzar la sintaxis, ya que JavaScript sigue estando basado en prototipos).

En lo que a herencia se refiere, JavaScript sólo tiene una estructura: objetos. Cada objeto tiene una propiedad privada (referida como su [[Prototype]]) que mantiene un enlace a otro objeto llamado su prototipo. Ese objeto prototipo tiene su propio prototipo, y así sucesivamente hasta que se alcanza un objeto cuyo prototipo es null. Por definición, null no tiene prototipo, y actúa como el enlace final de esta cadena de prototipos.

Casi todos los objetos en JavaScript son instancias de Object que se sitúa a la cabeza de la cadena de prototipos.

A pesar de que a menudo esto se considera como una de las principales debilidades de JavaScript, el modelo de herencia de prototipos es de hecho más potente que el modelo clásico. Por ejemplo, es bastante simple construir un modelo clásico a partir de un modelo de prototipos.

Herencia con la cadena de prototipos
Heredando propiedades
Los objetos en JavaScript son “contenedores” dinámicos de propiedades (referidas como sus propiedades particulares). Los objetos en JavaScript poseen un enlace a un objeto prototipo. Cuando intentamos acceder a una propiedad de un objeto, la propiedad no sólo se busca en el propio objeto sino también en el prototipo del objeto, en el prototipo del prototipo, y así sucesivamente hasta que se encuentre una propiedad que coincida con el nombre o se alcance el final de la cadena de prototipos.

Siguiendo el estándar ECMAScript, la notación algunObjeto.[[Prototype]] se usa para designar el prototipo de algunObjeto. A partir de ECMAScript 2015, se accede al [[Prototype]] utilizando los accesores Object.getPrototypeOf() y Object.setPrototypeOf(). Esto es equivalente a la propiedad JavaScript proto que no es estándar pero es el de-facto implementado por los navegadores.

No debe confundirse con la propiedad de las funciones func.prototype, que en cambio especifican el [[Prototype]] a asignar a todas las instancias de los objetos creados por la función dada cuando se utiliza como un constructor. La propiedad Object.prototype representa el prototipo del objeto Object.


Joder, de todas las referencias que hizo Juan, la mejor fue la final.

Una de las mejores clases que he tomado en platzi en los 6 meses que llevo ya

Es una herramienta sorpresa que nos ayudará mas tarde.

Aún recuerdo que Freddy (creo) dijo que jamás nos tendríamos que preocupar por que es “proto

Voy entiendito

¿Qué es un objeto en JavaScript?
Un objeto es la madre del cordero, los Array son un tipo de objeto porque es una instancia del prototipo Array.
Los objetos literales, son otro tipo, son objetos que el programador crea.
Las instancias de prototipo, son otro tipo de objeto, el cual es el creado de objetos no literales, que son similares a los literales, simplemnte se crean mediante un arquetipo de parametros que deben tener dentro el objeto al momento de crearse.
Y por ultimo el Object(): que es objeto supremo que esta por defecto en Js y del cual decienden todos los anteriores y éste trae los metodos Proto:

Agregando a toda está increíble clase llena de conocimientos y referencias agrego lo siguiente:

Definiciones Claves

  • this: Esta palabra reservada hace referencia al objeto actual donde se está ejecutando. Lo utilizamos Por ejemplo: Para crear funciones reutilizables que se puedan adaptar al contexto donde se están ejecutando. Ejemplos aquí
  • new: Es un operador, el cual nos permite crear instancias de un objeto definido por el usuario o de los objetos integrados que tienen una función constructora (Object, Array, String)
  • prototype: Es la propiedad donde definimos todas nuestras propiedades y métodos que queremos que sean heredados. Esta es un repositorio, el cual también es un objeto.
  • Prototipos: Es el mecanismo que utilizamos para que los objetos en JS hereden características entre sí.
  • ** Proto**: Es la propiedad que guarda los atributos y métodos definidos en prototype. Es importante recalcar que cuando se crea un objeto y se guardan valores acá, ambos siempre hacen referencia al mismo objeto.

Y para responder qué es un objeto?
Todo en JS es un objeto 😂.
Se podría resumir como una colección de valores, organizados de manera clave-valor(?

¿Qué es un objeto en JS?

Todo y nada al mismo tiempo.

¿Qué es un Prototipo?
Un Prototipo es la base del desarrollo de todos los objetos, imagina una casa que solo fue construida con ladrillos sin ningún tipo de decoración ni tampoco ventanas o puertas esa es nuestra base o nuestro PROTOTIPO, al agregar puertas, ventanas, focos, cableado, vamos incluyendo nuevos objetos y estos pueden ir generando más. Podemos pensar por ejemplo la COCINA como un objeto heredado del protipo casa ¿Por qué? bueno en un mundo lógico y algo estricto NO puede existir una cocina sin una casa ahora la COCINA tiene objetos como mesa, sillas, horno, refrigerador y cada objeto tiene sus propiedades(atributos) y acciones(métodos) como el horno que tiene la función calentar

Mi pequeño aporte 👀

¿Qué es un objeto en JavaScript?

Sabemos que un Objeto es una instancia de una clase, bueno, es la definición que podemos adquirir cuando hablamos de Programación Orientada a Objetos.

Pero, ¿Qué es un objeto en JavaScript?, bueno vamos poco a poco 😉

En JavaScript podemos crear un objeto sin la necesidad de crear una clase, que hay que resaltar que no es una clase persé, sino que es un prototipo, estos objetos son llamados objetos literales.

Entonces podemos decir que cómo puede ser eso, si en la definición nos dice que un objeto es una instancia de una clase, que en el caso de JavaScript será un prototipo, bueno aquí es donde estra en juego la propiedad misteriosa que se le agregan a nuestros objetos literales llamada _proto_ esta propiedad la cual al momento de generar un objeto literal traduce nuestro código para generar una instancia de un prototipo, en este caso del prototipo Object. Entonces si estamos diciendo que indica de que prototipo es, seguimos cumpliento con la definición de un objeto.

Dentro de _proto_ tenemos muchos métodos los cuales como sabemos nosotros no los hemos creado, sino que están definidos en el prototipo Object y que fácilmente podemos acceder a estas propiedades con el nombre de nuestro objeto punto (.) el nombre de la propiedad.

Casi todo en JavaScript es un objeto, por ejemplo los Arrays también son objetos, porque también son instancias del prototipo Array y dentro de la propiedad _proto_ tenemos todos los métodos que conocemos de los array que sabemos que nosotros no hemos creado.

Documentación oficial MDN sobre objetos en JS
Arrays en JS

const students_platzirank = [
  'Juan',
  'Juanita',
  'Nath',
  'Nora',
  'Luisa'
];

Array asociativo en PHP

$students_platzirank = [
  'Juan' => 100,
  'Juanita' => 300,
  'Nath' => 700,
  'Nora' => 150,
  'Luisa' => 0
];

Diccionarios en Python

students_platzirank = {
  'Juan': 100,
  'Juanita': 300,
  'Nath': 700,
  'Nora': 150,
  'Luisa': 0
}

Objetos literales en JS

const students_platzirank = {
  'Juan': 100,
  'Juanita': 300,
  'Nath': 700,
  'Nora': 150,
  'Luisa': 0
};

objetos_literales !== instancias Peeeeero sí son instancias del prototipo Object de JS 😅

Clases y objetos en PHP

class Student {
  public $name = 'Nombre';
  public $age = 18;
  public $points = 750;
}

$juanita = new Student;

Clases y objetos en Python

class Student:
  name = 'Nombre'
  age = 18
  points = 750

juanita = Student()

Clases y objetos en JavaScript

function Student(){
  this.name = 'Nombre'
  this.age = 18
  this.points = 750
}

const juanita = new Student()
juanita.hasOwnProperty("name") //true
const objetito = {}
objetito.hasOwnProperty("name") // false

Reto: En JavaScript existen dos tipos de objetos: los objetos literales que son los que creamos con las llaves y los objetos instanciados desde las clases. Ambos tienen algo en comun. Y es que los dos son instancias de un prototipo llamado Object. Este ultimo es como la madre de todos los objetos. Entonces, cada vez que creamos un objeto, se le asigna metodos heredados de la clase Object. Finalmente podemos decir lo siguiente: cuando cremos un objeto con corchetes, este va a ser una instancia de la clase Object. Y cuando creamos el otro tipo de objeto no solo sera una instancia de la clase Object sino tambien de la instancia de la cual la estamos creando.
De esta manera entendi la clase, si me equivoco corrijanme. gracias 😄

Si eres como yo y te preguntas ¿Qué demonios es un prototipo? Ahí te va:

Un objeto en JavaScript tiene otro objeto, llamado prototype. Cuando pedimos a un objeto una propiedad que no tiene, la busca en su prototipo. Así, un prototipo es otro objeto que se utiliza como una fuente de propiedades alternativa.

En pocas palabras: Un prototipo es el objeto del que se derivan todos los demás objetos, fin :3

Fuente

Les dejo esta clase del curso de elementos de JavScript donde profundizan mas sobre el this.

Un objeto es un tipo de dato que empieza y termina con { }, también es un prototipo predefinido por la comunidad que desarrolla Jvascript como lenguaje, por eso, podemos acceder a métodos como map, push, reduce, que nosotros no definimos. Y por último, un objeto es una instancia de una clase en la POO

Bua esta clase me volo la mente , me encanto muchisimo 😄

Un objeto es una estructura de datos que contiene datos e instrucciones para trabajar con los los datos. Recomiendo estudiar las clases de mozilla Developer leñidas, ayudan mucho a entender.

Los objetos son Instancias del Prototipo Object( ) que a su vez es un Objetos…


Creo que volveré a verlo 3 veces más…😔🖖

Un objeto en js es una colección de propiedades y valores, se pueden crear vacíos utilizando {} o heredando el prototipo de otro objeto. Por defecto, todos los objetos de js heredan el prototipo Object, que se podría decir que es el objeto padre de todos los objetos, contiene varios metodos para poder operar mejor un objeto. Y pasa lo mismo con Arrays, Strings y Numbers, extienden un objeto padre que les permite utilizaar todos los métodos que usamos comúnmente 👌

JavaScript
Lenguaje de programación dinámico, orientado a objetos y basado en prototipos. Básicamente, existe un prototipo raíz llamado objeto de cual se instancian los objetos literales, los arrays y las instancias de prototipos u objetos que creamos como: usuario, artículos, casas, etc. y que reciben los métodos que definimos y los métodos del proto.

Un objeto en JavasScript lo es todo es el principio y el fin.

Me siento extraño. Lo entendí a la primera… Esto no pasa siempre… °-°

Vivimos en una sociedad donde todo es un objeto. jajaja.

Asi no me puedo concentrar v:

Prototipos en JavaScript

Esta clase me volo la cabeza 😮
Por fin logré comprenderlo en mayor medida 😃

Un objeto en JavaScript es un instancia del prototipo Object que viene nativamente en JS. Por lo tanto, el objeto que creemos hereda todas las propiedades de Object.

Un Objecto en JavaScript es una INSTANCIA de un PROTOTIPO. Los prototipos son los equivalente a las clases en otros lengiajes de programación. JavaScript tiene sus propios prototipos, entre los que se encuentran Object, Array, String, con sus respectivos métodos y atributos.

También podemos crear nuestros propios prototipos con sus métodos y atributos, y crear objetos que serán instancias de dicho prototipo. PERO TAMBIÉN todas las instancias de nuestros prototipos serán instancias del proptotipo de JavaScript Object, pudiendo así también acceder a los atrubutos y métodos de este.

Espero no haberme confundido xD.

function creoEnMi ( ) {
this.creencia = “Es un objeto”,
this.clase = “Es un objeto”,
this.realidad = “Es un objeto”,
this.vida = “También es un objeto”
}

const blowMind = new creoEnMi ( );

¿Qué clase de píldora roja me acabo de tomar? ._.

Hay muy buenas respuestas que resumen bien todo. Como para aprovechar el video al 100%.

Mi respuesta según lo entendido hasta ahora sería:

Un objeto en JS es la instancia de un prototipo.

Según lo que pude entender un objeto es aquella clase que tiene propiedades y funciones.
De los objetos podemos crear instancias.

Tenemos 2 tipos de objetos, los literales y los de POO. Con los literales no podemos instanciarlos, solo los creamos una vez con sus datos (pero estos son una instancia de Object)

Los de POO son objetos que plasmamos en una clase, nosotros definimos sus propiedades y las diferentes funciones que este puede hacer, este objeto si puede ser instanciado y a su vez también será una instancia de Object

Sin importar que objeto creemos (literal o de POO), estos serán una instancia de Object y podrán acceder a sus funciones

Si estoy mal por favor corríjame

que buena clase!, siempre le hui a estas partes del lenguaje pero luego de ver esta clase (ya con un poco mas de experiencia), asimilo mejor el contenido y comprendo mas a javascript, Gracias Juan!

Que buena clase lpm

Esta es la clase más densa que he visto en Platzi. Clase super importante

Viendo la clase y viendo un poco la terminal, queria ver como estan construidos por dentro un objeto literal, una instancia de un prototipo y una instancia de un objeto.
.
Pensé que la instancia del prototipo y la instancia del objeto iban a ser iguales, pero no. Hay una diferencia…
.
Este es mi codigo por si lo quieres probar.
.

let objetoLiteral = {
    nombre: "Juan",
    apellido: "Rodriguez"
}

function prototipo () {
    this.name = "Juan P",
    this.apellido = "Rodriguez P"
}

let instanciaPrototipo = new prototipo();

class estoEsClass {
    name;
    apellido;
}

let instanciaClase = new estoEsClass()

console.log(objetoLiteral)
console.log(instanciaPrototipo)
console.log(estoEsClass)
console.log(instanciaClase)

.
Cuando reviso la consola, lo que puedo ver es que el proto de todos es igual: Object. Todos vienen del prototipo Object.
.
PERO
.
Si abrimos Object veremos algo interesante…
.
Veremos que hay un atributo constructor:, el constructor del objeto literal está lleno de metodos, el de las instancias no. Esto ya nos indica que no son exactamente iguales, y aquí viene lo interesante.
.
Un poco de contexto. Según lo que yo entiendo, la funcion constructor: es la que construye el objeto (no me digas). Si vemos lo que está a la derecha del constructor veremos…
.
Objeto literal:
constructor: ƒ Object()
.
Instancia de un prototipo:
constructor: ƒ prototipo()
.
Instancia de una clase:
constructor: class estoEsClass
.
Todos son objetos, pero están construidos desde diferentes lugares.

Los objetos literales no son iguales a los objetos de POrgramacion orientada a Objetos(POO)

Un objeto es una instancia de una clase, contiene atributos o propiedades y metodos.

Los objetos literales son los objetos que hemos trabajado toda la vida por ejemplo un array, yo los usaba los objetos como contenedores, ellos instancian por default al prototipo Object y obtienen sus metodos y atributos, y la instancia de prototipos es cuando instanciamos un prototipo creado por nosotros para crear un objeto que va a obtener sus metodos y atributos y tambien hace instancia por default al prototipo Object donde tambien obtiene sus metodos y atributos.

“Los prototipos son un mecanismo mediante el cual los objetos en JavaScript heredan características entre sí”.
https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects/Object_prototypes

no se si este equivocado,pero lo que entiendo es que un objeto en javascript no es creada por el desarrollador sino por defecto de js, siendo que este define todas las propiedades de como se comportaria un objeto creado por el desarrollador, en mi entendimiento javascript trata como objetos los elementos que nosotros usamos para programar en el mismo js!

el objeto en js es un todo , por eso la pregunta mas importante en js seria “ser o no ser un objeto esa es la cuestion” jjajajajaj

Me encanto esta clase !

Esta clase me voló la cabeza! Practicamente todo lo que está escrito en Javascipt puede considerarse un objeto o puede comportarse como tal.

Esta clase esta muy buena me ayudo a comprender de una manera mas profunda el porque de los prototipos y por que en Javascript todo es un objeto. Juan eres un crack.

Un objeto en JS, son instancias de clases o instancias de prototipos por default donde se establecen comportamientos y atributos.

Un objeto es un instancia del prototipo Object que se crea por defecto por JavaScript.

Blow my mind 🤯🤯🤯🤯 con esta clase, ya que despues de verla dos veces y estar pausando cada momento para poder digerir la información concluimos que todos son objetos/arrays instanciados del prototipo Object que tambien es un objeto ajaja 🤯
Ahora si me quedo claro todo lo que se hablo en el video

Según interpreto, un objeto es un contenedor de propiedades (características y funciones)

En javascript casi todo es un un objeto.
iniciando por los Objetos literales lo cual no tienen nada que ver con la programacion orientada a objetos mas bien es parecido a clave-valor, los JSON o los diccionarios en Python.

Objetos literales

const dog{
	name='kira',
	age='2',
	color='white'
};

tambien un objeto es las instancias de in prototipo por que estas acceden a los metodos de la __proto
un prototipo puede ser como un molde de objetos.

function dog (){
	this.name="kira";
	tihs.age="2";
	tihs.color="white";
}
const Elmo = new dog();

En este caso se usa una funcion en la cual se usa THIS para guardar nuestros atributos, la instancia es un objeto, por que como se menciono anteriormente accede a _ _ proto__

Un Objeto en JS es una instancia que puede ser elaborada por nosotros o puede estar por defecto, en si todo es un objeto en JS solo se debe tener cuidado en su método de uso si es Array, Object).

Todo en js es un objeto(String, Arrays, Objetos literales, etc), ya que instancian de los prototipos “madre” de js.

En JavaScript todo es un objeto. Existen los objetos literales que, a su vez, son instancias del prototipo Object. Por su parte, los objetos instanciados de prototipos creados por nosotros pueden acceder a los métodos del prototipo Object. Incluso los arrays son instancias del prototipo Array y pueden acceder a sus métodos. Además, al igual que en otros lenguajes de programación los objetos son bloques de código formados por atributos y métodos, salvo que las características específicas de JavaScript le dan la definición de estar basados en prototipos y no en las clases típicas de otros lenguajes de programación.

Prototipo & Objeto

Para entender o definir un objeto primero se debe de empezar por el significado de prototipo, así como vemos que JS tiene elementos que nos ayudan a crear los algoritmos, como lo son las condicionales, funciones, ciclos, etc., también tiene otro tipo de elementos, como lo son los prototipos, que a mi comprensión y entendimiento del tema son como un marco de referencia que no son activos, como los otros elementos ya mencionados, más bien marcan las pautas que nos indican qué características y acciones pueden tener aquellas “creaciones” o “instancias”, que sean creadas bajo dicho marco de referencia(prototipo), a estas instancias se les llama objetos. Entonces estos objetos son elementos que únicamente pueden describirse y actuar limitadamente, y la diferencia entre uno y otro deben por aquellas condiciones externas bajo las que fueron generados, este límite puede cambiar, pero solo si el prototipo lo permite.

Por ejemplo, entre tú y yo, que ambos somos humanos, entonces el prototipo es el ser humano, este prototipo establece que tengamos cierta forma geométrica, la cual limita nuestro movimiento en el mundo, idealmente tendremos cuatro extremidades(condición de nacimiento o creación), que nos permitirá andar en tierra, pero ninguna de ellas nos permite volar, en ningún punto, a diferencia de nadar, que es algo que se puede aprender, pero solamente si somos sometidos a un proceso que así lo permita(condición post nacimiento o post creación). A esto se refiere que el marco de referencia impone lo que describe y lo que puede hacer un objeto.

Resumen

Entonces, explicado de otra manera, un objeto es aquel elemento que puede tener actividad dentro de un programa, esta actividad abarca las descripciónes y métodos que puede realizar dicho objeto, y el prototipo es una estructura que establece las descripciones y métodos que tienen a priori cualquier objeto creado basándose en dicho prototipo.

Por ejemplo, el prototipo del cual siguen las listas, este prototipo se llama array, una descripción que tiene cualquier array es aquella que guarda el valor de la cantidad de datos, el cual es length, y un método que pueden hacer todas las listas es push() que permite agregar datos a la lista.

“Si no crees en ti, entonces solo cree en nosotros que creemos en ti”

esto es una referencia a TTGL o estoy siendo demasiado geek ? jajaja, excelente

un objeto en javascript es la instancia de un prototipo, cuando nosotros somos los creadores de ese prototipo se le llama objeto, pero cuando nosotros no creamos el prototipo se llaman objetos literales por que son instancias del prototipo object, pero el prototipo object tambien se aloja en los objetos no importando si es literal o no.

¿Que es un Objeto en Javascript?

Un objeto, es la instancia de un prototipo que puede ser hecho por nosotros, o venir por defecto, pero ¿Que es un prototipo entonces?

Un prototipo es el mismo constructor de cualquier objeto, puesto que de este, salen todos los metodos y atributos que se le van a heredar a cualquier instancia de un prototipo, de hecho siempre puedes verificar si el prototipo de una instancia es ese prototipo con // Constructor.prototype.isPrototypeOf(instanciaDeObjeto) //

entre a este curso sabiendo algunas cosas de programacion, pero me sentia un poco hueco, como que faltaba algo que uniera todo lo que habia aprendido hasta el momento, y ahi es donde entra este curso y los paradigmas de la programacion, gracias juanDC por esta clase

En JavaScript, un objeto es la instancia de un prototipo, pero este concepto de objeto gana complejidad, cuando se habla del prototipo Object que viene por defecto en JavaScript.
A dicho prototipo Object suele llamársele objeto, producto de su nombre, aunque realmente se trata del prototipo que da origen a todos los objetos de JavaScript.

Una Forma FACIL de Entenderlo es:

  • __proto__: Object :

    Es una “CLASE” llamada Object. Esta viene de forma nativa en JS y nos permite crear dos tipos de objetos: Los Objetos Literales y los Objetos Instancia

  • Objetos Literales :

    Es un Objeto instanciado directamente de la clase _proto_

  • Objetos Instancia :

    Igualmente son objetos instanciados directamente desde la clase _proto_,
    PERO a la vez son clases y se comportan como tal.
    En otras palabras, son Objetos que nos permiten crean nuevos objetos

En JS un objeto es una instancia de un prototipo.

Un objeto es un elemento del mundo real o algo logico

Conclusión

Los objetos literales a pesar de que son diferentes de las instancias de prototipos que creamos (propios, que construimos), siempre serán instancias de un prototipo más grande llamado “Object” la diferencia está en que las instancias pueden tener métodos y atributos que nosotros mismos creemos, sumándoles también las de “Object”.

Resumen

Un objeto literal no es lo mismo que un objeto instanciado, esto es en parte mentira, ya que tantos los objetos literales y las instancias están basados en prototipos, es decir, existe un prototipo padre/madre en el cual se instancian, por tal motivo los objetos literales e instanciados tienen acceso a los métodos de su prototipo.

Como apunte extra, A las instancias de prototipos se les conoce como objetos.

Un objeto en JavaScript es un instancia del prototipo padre Object , al ser una instancia hereda todos los metodos y atributos de el (son los que se pueden ver en proto), es decir, al crear un array o un objeto estamos creando un instancia del Objecto padre por lo que heredamos todo lo que compone al objeto padre.

Un objeto literal es una instancia del prototipo Object (), así mismo los arrays también son instancias del prototipo Array(), por esa razón es que cuando usamos el método typeOf nos devuelve un valor de object.

Tenías razón. A la segunda sí lo entendí jajjaajajajaja

Un objeto en JavaScript , es un objeto de un prototipo llamado objeto del que heredan otros objetos.

Un objeto en javascript es una instancia del prototipo padre object(El cuál ha sido creado por prototipos jaja).

🪂 Qué es un objeto en JavaScript

Ideas/conceptos claves

this es una palabra reservada generalmente para especificar el contexto en el cual se está ejecutando

Apuntes

  • Todos los lenguajes de programación tienen tipos y estructuras de datos
    • String - cadenas de texto
    • Números
    • Booleanos
    • Listas
  • Casi todos los lenguajes de programación tienen listas
  • PHP no es la excepción tenemos las listas de toda la vida
$students_platzi_rank = [
	"Juan",
	"Juanita",
	"Nath",
	"Nora",
	"Luisa"
]
  • Aparte en PHP tenemos los arrays asociativos, En vez de acceder por su posición podemos acceder por un nombre clave
$students_platzi_rank = [
	"Juan" => 110,
	"Juanita" => 300,
	"Nath" => 700,
	"Nora" => 150,
	"Luisa" => 0,
]
  • En Python tenemos los diccionarios aparte de las listas, que son un conjunto de datos que podemos acceder a través de una clave, es decir funcionan a partir de clave - valor
students_platzirank = {
	'Juan': 110,
	'Juanita': 130,
	'Nora': 310,
	'Luisa': 300,
}
  • En JavaScript igual tenemos este tipo de lista, muy similar a los diccionarios en Python, esto es conocido como objetos literales en JavaScript
students_platzirank = {
	'Juan': 110,
	'Juanita': 130,
	'Nora': 310,
	'Luisa': 300,
}
  • Los objetos literales no son lo mismo que las instancias
    • Cuando hablamos de programación orientada a objetos funcionan a partir de clases - objetos
    • Pero los objetos literales no son los mismos que los de la programación orientada a objetos

Clases

PHP

class Student {
	public $name = 'Nombre';
	public $age = 18;
	public $points = 750;
}
$juanita = new Student;

Phyton

class Student
	name = 'Nombre'
	age = 18
	points = 750

juanita = Student();

Javascript

  • Si bien JavaScript está orientado a objetos, no está basado en clases, sino en prototipos, un prototipo básico es el siguiente:
function Student() {
	this.name = 'Nombre';
	this.age = 18;
	this.points = 750;
}
const juanita = new Student();
  • Esta función tiene características importantes como:
    1. Estamos utilizando this para guardar nuestros atributos
    2. Cuando llamamos a esta función estamos utilizando la palabra reservada new con el propósito de crear una nueva instancia

Comparación entre un Objeto literal vs Objeto de una instancia

  • La diferencia más marcada es que el objeto que es una instancia de un prototipo está etiquetado como instancia de Student

Prototype

  • Si expandimos __proto__ desde cualquier objeto literal, podemos ver que está repleto de métodos
  • Podemos acceder a todos estos métodos desde nuestros objetos literales sin necesidad de entrar al atributo __proto__
  • Por ejemplo si deseamos utilizar hasOwnProperty de un objeto literal, no es necesario escribir __proto__ aparte que nunca definimos hasOwnProperty
natalia.hasOwnProperty("name");
  • No solo pasa con los objetos sino que también con los arrays
    • Siempre que creamos un array tendremos __proto__

¿De dónde sale __proto__?

  • Cuando creamos un objeto literal o array nos indica en la propiedad __proto__ que es una instancia tanto de Object o Array

  • JavaScript por dentro tiene prototipos por defecto entre ellos se encuentran:

    • Object
    • Array
    • String
  • Lo que hace JS, cuando escribimos [] o {} lo convierte por trasfondo a instancias de nuestras variables

  • Por lo cual cuando definimos siempre aparecerán

  • Nosotros también podemos crear prototipos, pero al crear instancias de un prototipo no solo recibimos sus métodos y atributos del mismo, sino que también recibimos de Object

  • En sí al definir un objeto literal no es instancia de ningún prototipo que nosotros hayamos definido sino que es instancia de Object el cual viene por defecto

📌 **RESUMEN:** Un objeto en JavaScript es una instancia del prototipo nativo de JS `Object` al igual que sucede con los `arrays` los cuales son instancias de otro prototipo nativo de JavaScript llamado `Array`. Al crear un nuevo prototipó implícitamente al crearse también heredará el prototipo de `Object`

Un objeto en JavaScript es una instancia del prototipo madre Object(). este puede ser un array, un objeto literal o la instancia a un prototipo.

En JavaScript los objetos literales no son lo mismo que los objetos de la programación orientada a objetos.

JavaScript es un lenguaje de programación orientado objetos, pero no está basado en clases, sino en prototipos.

function Student () {
  this.name = 'Nombre';
  this.age = 18;
  this.points = 750;
}

const juanita = new Student();

Para empezar, no estamos creando una clase, sino una función. También usamos la palabra reservada this para guardar nuestros atributos y, finalmente, llamamos a la función instanciada con la palabra new. De igual manera, si desplegamos en la consola la constante juanita podremos observar que nos indica que “juanita” es una instancia del prototipo “Student”.

Cuando creamos objetos literales, arrays, instancias de prototipos y prototipos Oject(), todos ellos son objetos y la consola despliega un objeto que se llama proto.

  • Array: __proto__: Array(0).
  • Objeto litera y objeto instanciado: __proto__: Object.
  • Object(): es el prototipo madre de los prototipos, no es una instancia a un prototipo como tal.

Todos somos una instancia
Tu eres una instancia
Él es una instancia
Yo soy una instancia
Platzi en sí mismo es una instancia

Todo es un objeto en JavaScript, incluso el objeto madre es un objeto por su nombre pero este no es una instancia de nada por que este marca el final de la cadena de prototipos y por lo tanto su proto es igual a null.
Ame esta clase! senti que estuvo muy bien explicada, se que no es un tema facil y el profe lo hizo genial!
Si quieren profundizar en el tema encontre estas dos paginas:
https://www.freecodecamp.org/espanol/news/prototipo-javascript-expliacado-con-ejemplos/
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes

El mundo se mueve en objetos, objetos objetos, aprende algo objetos!

Un prototipo es una estructura de código que permite crear instancias de si misma (algo como una clase), aun así JS tiene estos prototipos por defecto y de forma nativa, al crear Objetos estamos haciendo que los nuevos prototipos hereden los métodos y atributos de este prototipo que viene por defecto. Por lo tanto, un objeto en JS es un prototipo que hereda comportamientos del prototipo original llamado “Object”

Un objeto en javascript son instancias, ya sea de un nivel o más, creadas a partir del prototipo Object().

Y yo pensaba que entender filosofia ya estaba complejo 😛

Los objetos son una colección de propiedades, en JavaScript podemos crear objetos de dos formas:

  • Objetos literales: Se pueden crear sin necesidad de un constructor o instanciar una clase
const juan = {
  nombre: 'Juan',
  edad: 22,
  sexo: 'masculino',
  pasatiempos: ['programar', 'leer'],
}
  • Objetos construidos: Utilizando la palabra reservada new podemos crear un nuevo objeto, tenemos un modelo que en este caso sería una función
function Persona (nombre, edad, hobbie) {
	this.nombre = nombre;
	this.edad = edad;
	this.hobbie = hobbie;
}
// Creando un nuevo objeto
const juan = new Persona("Juan", 20, ["Programar", "Leer"]);

un objeto es una instancia de la clase creada por javaScript

JS Object: What are they? What do they want?

Bueno, conjuntos emparejados entre nombre y valor.

const theObj = {
	name: 'value',
	another: 'world'
};

Estos pueden ser declarados arbitrariamente en el código utilizando la sintaxis de los corchetes que se muestra arriva. O pueden ser instancia o replicas del model principal llamado clase.

La particularidad de Javascript es que los objectos pueden heredar los métodos de todas las clases que estuvieron involucradas en el proceso. Y con esto me refiero a que pueden utilizar exactamente los mismos metodos que las clases que lo crearon.

Un objeto es una instancia del objeto Objetc, y tienen muchos métodos por defectos

Un objeto en JavaScript tiene otro objeto, llamado prototype (prototipo, en español). Cuando pedimos a un objeto una propiedad que no tiene, la busca en su prototipo. Así, un prototipo es otro objeto que se utiliza como una nueva fuente de propiedades alternativas.

Prototype es una propiedad de Object, (el objeto del que se derivan todos los demás objetos), y esta propiedad, a su vez, un objeto. Por lo tanto, el prototipo ultimo de un objeto es Object.prototype. este prototipo padre tiene métodos que comparten todos los objetos.

En pocas palabras un prototipo es un mecanismo por el cual un objeto puede heredad de un objeto padre, tanto atributos como métodos.

Muchos objetos que instanciamos en JS son instancias de prototipos, por tanto, siempre vas a heredar métodos y atributos del prototipo Object por ejemplo.
Podemos verlo asi un prototipo es similar a una clase. Pero OJO, no son lo mismo porque al principio Juan nos explica que JavaScript es un lenguaje orientado a Objetos pero Basado en prototipos.

Excellent explanation JuanDC, it was clear for me!

Los objetos literales son instancias del prototipo Object creado automáticamente por JS.

Esta es de las mejores clases que ví de momento en toda la ruta de desarrollo web. Me encantó.
Pueden ir complementando el curso con este curso de MDN:
https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects

JAMAS había visto un curso de Javscript en ningún lado que explicara tan bien acerca de la herencia y prototypes en Javascript. Todos los profesores de Platzi lo explican de alguna manera y se nota que lo saben, pero ninguno lo pudo explicar tan bien como Juan David. Mis respetos para ti pequeño genio!

Bueno, para comenzar, hay varios tipos de Objetos en JavaScript, pero sin duda alguna, todos los tipos de objetos están instanciados de su clase padre o de su prototipo. También lo podría definir con que un objeto es un espacio en memoria jajaja.
Los objetos tienes atributos o propiedades, y también a su vez métodos, algunos métodos vienen por defecto de su prototipo. Y aquí es donde viene la POO, podemos crear nuestros propios prototipos o clases, y podemos crear nuestros propios atributos y métodos, a su vez podemos instanciar o crear objetos a partir de esa clase o prototipo que herede sus mismos atributos y valores. Esto para mi es un Objeto jaajaj, casi se me estalla la cabeza.