¿En donde y porque aplicaríamos this? Lo he visto en lenguajes como React que no se aplica tanto, pero por ejemplo en Angular si se usa ...

Pregunta de la clase:
this
Manuel Gerardo Flores Quiñonez

Manuel Gerardo Flores Quiñonez

Pregunta
studenthace 5 años

¿En donde y porque aplicaríamos this? Lo he visto en lenguajes como React que no se aplica tanto, pero por ejemplo en Angular si se usa full.

2 respuestas
para escribir tu comentario
    Fernando Veloz Cleto

    Fernando Veloz Cleto

    studenthace 5 años

    Puede que hayas visto que en angular se usa más, porque angular trabajar por default con typescript y clases. Y el uso más común de this, es dentro de una clase.

    Por ejemplo, te comparto un ejemplo sencillo de un componente en angular

    import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; @Component({ selector: 'delete-dialog', templateUrl: './delete-dialog.component.html', styleUrls: ['./delete-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) export class DeleteDialogComponent implements OnInit { constructor( public dialogRef: MatDialogRef<DeleteDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any ) { } ngOnInit() { } onNoClick(): void { this.dialogRef.close(); } onYesClick(): void { this.dialogRef.close(true); } }

    En el que this, se usa para tomar un atributo de la clase y manipularlo.

    Bernardo Ayala Montezuma

    Bernardo Ayala Montezuma

    studenthace 5 años

    Hola Ge_01, espero que estés bien.

    Antes quería comentarte que React y Angular no serían jenguajes sino librerías para trabajar con JavaScript, que sería el lenguaje de programación detrás de esas herramientas geniales.

    Aclarado un poco ese punto,

    this
    es un concepto fundamental de JavaScript que es tan importante como confuso para los que estamos empezando con el lenguaje.

    En resumen

    this
    hace referencia a un objeto, el detalle es que al objeto que está haciendo referencia varía dependiendo del contexto.

    Voy a tratar de darte un ejemplo con código:

    function printThis() { console.log(this) } printThis()

    Dentro de este contexto (las funciones)

    this
    hace referencia al objeto global (window), por lo que al ejecutar esa función en la consola verás que el resultado es
    Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, parent: Window,}

    Pero, si estamos dentro del método de un objeto (recuerda que un método es una función dentro de un objeto),

    this
    hace referencia al las propiedades de ese objeto:

    const game = { name: 'The last of us', year: 2013, describe() { console.log(`${this.name} fue lanzado en el año ${this.year}.`) }, } game.describe()

    En este caso el resultado en la consola será:

    The last of us fue lanzado en el año 2013.

    Sé que quizás esta explicación no te deje del todo claro que es

    this
    pero es que realmente es un concepto complejo, recuerda que en resumen hace referencia a un objeto, la complejidad es que no siempre es muy fácil entender a qué objeto está haciendo referencia.

    Si sabes inglés, y quieres profundizar te recomiendo esta lectura Understanding This, Bind, Call, and Apply in JavaScript

Curso Profesional de JavaScript

Curso Profesional de JavaScript

Mejora tus habilidades en Javascript. Conoce Typescript y cómo puedes ocuparlo para mejorar el control de tus variables. Comprende conceptos avanzados que te permitan plantear mejores soluciones en tu código. Conoce las APIs del DOM y descubre cómo puedes organizar mejor tu código utilizando patrones de diseño.

Curso Profesional de JavaScript

Curso Profesional de JavaScript

Mejora tus habilidades en Javascript. Conoce Typescript y cómo puedes ocuparlo para mejorar el control de tus variables. Comprende conceptos avanzados que te permitan plantear mejores soluciones en tu código. Conoce las APIs del DOM y descubre cómo puedes organizar mejor tu código utilizando patrones de diseño.