Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

208
Views
Cómo pasar la devolución de llamada a la función de inicio en una clase

Como mencioné en el título, me gustaría pasar alguna función como devolución de llamada a la función de inicio en alguna clase

Voy a poner aquí una estructura básica:

 class Person { constructor() { this.nums = [1, 2, 3]; this.init(); } init() { this.nums.forEach(num => { console.log(num); }); } }

Digamos que me gustaría agregar esta función como devolución de llamada a la función de inicio:

 function test() { console.log('test') }

Cómo puedo hacer esto

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

 class Person { constructor(cb) { this.nums = [1, 2, 3]; this.cb = cb; this.init() } init() { this.nums.forEach(num => { console.log(num) }) this.cb() } } const test = () => { console.log('test') } const myPerson = new Person(test)

about 4 years ago · Juan Pablo Isaza Report

0

Declare la callback de llamada como un parámetro en su método de init y llame a la callback de llamada al final de su método de init .

Mientras llama a su método init , pase la test como argumento.

about 4 years ago · Juan Pablo Isaza Report

0

En caso de que el OP quiera que se invoque la devolución de llamada como si fuera un método de la instancia de Persona y, además, también quiere manejar el paso de argumentos a dicha devolución de llamada, entonces init ya no es solo un inicializador.

Se convierte en un único método genérico de cualquier instancia de Person que invoca cualquier función pasada dentro del contexto de dicha instancia mientras pasa el resto de sus argumentos a la devolución de llamada.

Tal método entonces podría ser renombrado de init para execute ...

 function pushNumberValues(...values) { this.nums.push(...(values.flat())); } function logInstanceNumbers() { this.nums.forEach(num => console.log(num) ); } class Person { constructor() { this.nums = [0, 1, 2]; } execute(callback, ...args) { return callback.apply(this, args); } } const person = new Person; person.execute(pushNumberValues, 3, 4, 5, 6); person.execute(pushNumberValues, [7 , 8 , 9]); person.execute(logInstanceNumbers);
 .as-console-wrapper { min-height: 100%!important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!