Wie man eine Referenz auf eine Klasse Funktion im ES6?

Sorry, wenn die Frage zu einfach ist, aber ich bin hier etwas fehlt.
Gerade eingeschaltet, ein ES5-Modul, das sah aus wie:

module.exports = {
  func1: function(a, b) {...},
  func2: function(a, b) {...}
};

Einem ES6-Klasse, die wie folgt aussieht:

export default class {
  func1(a, b) {...}
  func2(a, b) {...}
}

Und alles war gut: in beiden Fällen konnte ich export mod from 'module'; - und call - mod.func1(a, b) und mod.func2(a, b).

Allerdings habe ich eine Funktion, erhält eine Modul-Funktion aufrufen:

var caller = function(func, val1, val2) {
  let a = something(val1);
  let b = something(val2);
  return func(a, b);
};

Wenn ich rufe caller(mod.func1, x, y) bekomme ich das gewünschte Ergebnis mit der ersten Umsetzung, sondern eine undefined is not a function mit der zweiten.

Ausdrucken der Wert der mod.func1 zurück [Function] in beiden Fällen aber eindeutig was anderes ist zurück von einem ES6-Klasse.

Was mache ich falsch, und wie kann ich eine Klasse Funktion, die ich anrufen kann in einer anderen Funktion?

Update: mit der zweiten Umsetzung, ich vergaß hinzuzufügen, die Instanziierung code:

import Mod from 'module';
var mod = new Mod();
  • Ich bezweifle wirklich, dass mod.func1(a, b) arbeitet mit der exportierten Klasse.
  • Vergessen Sie die Instanziierung code jetzt Hinzugefügt. Danke.
  • Hm, vorbei an der mod.func1 Methode wie eine Funktion, um irgendwo anders erfordert, dass Sie sich mit der this Kontext, in callbacks problem, aber das sollte sich nicht ändern, beim Wechsel von einem Objekt zu einer Klasse eine Instanz entweder. Können Sie uns zeigen, den Körper Ihrer Funktion?
Schreibe einen Kommentar