nicht aufrufen Ich habe eine Datei mit dem Namen helpers.js
im Ordner "Helfer". Die Inhalte sind wie folgt:kann statische Funktion auf ES6 Klasse
class Helpers {
constructor(config) {
if (this._singleton) {
throw new Error('A singleton has already been created.');
}
this._singleton = this;
}
/**
* Gets the singleton object.
* @returns {Helpers}
*/
static getSingleton() {
return this._singleton;
}
}
module.exports = Helpers;
Dann in /helpers/user.js
ich die Helfer Singleton-Instanz erhalten möchten. Dies ist mein Code:
const helpers = require('../helpers').getSingleton();
oder
const Helpers = require('../helpers');
const helpers = Helpers.getSingleton();
Der Fehler, den ich immer halten ist:
TypeError: require(...).getSingleton is not a function
oder
TypeError: Helpers.getSingleton is not a function
Wenn ich über Helpers
in VSCode schweben , Ich erhalte diese Tooltip
Und wenn ich über getSingleton()
schweben ich diesen Tooltip erhalten:
Also der Weg ist richtig, aber es gibt mir immer noch die Fehler.
Aus Ihrer Beschreibung, es klingt wie Sie haben: 'Helfer/helpers.js' und' Helfer/user.js', so Sie möchten 'require ('./ helpers')' oder 'require ('./ helpers.js')'. Angenommen, das ist nicht das Problem, was gibt 'console.log (typeof Helpers)'? Was ist mit 'console.log (typeofHelpers.getSingleton)'? –
Auch wenn Sie den Fehler nicht erhalten haben, funktioniert der Code nicht. 'this' innerhalb der statischen Methode bezieht sich auf etwas anderes als' this' im Konstruktor. Auch so funktionieren Singletons nicht. 'getSingleton()' müsste eine neue Instanz (beim ersten Aufruf) instanziieren und diese zurückgeben. –