Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
how to use a variable in in an object in a javascript class

How do I make foo() work?

file1.js:

module.exports = class Example{

    constructor(something){
        
        this.something = something
    }

    functions ={

        foo(){

            return this.something
        }
    }
}

file2.js:

const Example = require('./file1.js')
const object = new Example("among")

console.log(object.foo())
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Remove functions:

class Example{

    constructor(something){
        this.something = something;
    }

    foo(){

        return this.something
    }
}

const object = new Example("among")

console.log(object.foo())

about 4 years ago · Juan Pablo Isaza Denunciar

0

First: you have to access those functions via .functions since that's where they live

Second, this will not be correct, so you can either

  • Make foo an arrow function

  • or you can .bind(this) to a function - like with bar in this code

  • you can't use .bind when using function property shorthand though - i.e. foo() { return this.something }.bind(this) - but you can bind it in the constructor

See the code for all three solutions - and why you need to bind the non arrow functions

class Example{
    constructor(something){
        this.something = something;
        // bat needs to be bound here
        this.functions.bat = this.functions.bat.bind(this);
    }
    functions ={
        // "this" will be correct here
        foo: () => this.something,
        // bar needs to be bound to "this"
        bar: function() { return this.something }.bind(this),
        // you can't bind a shorthand property function though
        bat() { return this.something },
        // this is what happens with no bind
        baz() { return this.something },
    }
    
}

const object = new Example("among")

console.log('foo', object.functions.foo())
console.log('bar', object.functions.bar())
console.log('bat', object.functions.bat())
console.log('baz', object.functions.baz())

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda