Ich lerne Knoten und habe ein benutzerdefiniertes Modul erstellt.NOOB benutzerdefiniertes Modul Ereignis
Meine benutzerdefinierte Modul einfach definiert eine Klasse mit einer einzigen Methode.
Ich möchte diese Methode einmal aus dem definierten Klassenobjekt aufrufen können.
Ich möchte auch eine Variable in meinem Hauptcode von dieser Klassenmethode verweisen können.
In der "Open" -Methode habe ich zwei console.log-Befehle. Beim zweiten Fehler wird "ReferenceError: thisVar ist nicht definiert" angezeigt. Wenn ich die 2. console.log auskommentieren, die sich auf den Fehler "open" bezieht, wird gedruckt.
Wie kann ich thisVar von der Klassenmethode referenzieren?
Edit1 Ich verstehe aus den Antworten, dass "thisVar" außerhalb des Umfangs der Klasse und daher nicht verfügbar ist. Warum funktioniert "thatVar" so, wie es auch außerhalb der Klasse definiert ist? Ist der Bereich relativ zum Modul und nicht zur Klasse?
Das ist mein Haupt js Code:
"use strict";
const Door = require('door');
const mydoor = new Door("green");
var thisVar = 1;
console.log(mydoor.colour);
mydoor.open();
Das ist mein "Tür" Modul:
"use strict";
var thatVar = 2;
class Door {
constructor(colour) {
this.colour = colour;
}
open() {
console.log("open");
//console.log(thisVar);
console.log(thatVar);
}
}
module.exports = Door;
Meinten Sie 'mydoor.open()'? Ich sehe auch 'thisVar' nirgendwo definiert. Die 'thisVar' in der Tür und die' thisVar' in main sind in keiner Weise miteinander verknüpft. – Li357
Tippfehler behoben. Kann die Klassenmethode thisVar in main überhaupt referenzieren? – Dercni
Nein, sie haben überhaupt keine Assoziation. Wenn überhaupt, könnte man 'thisVar' durch den Konstruktor wie' colours' übergeben. – Li357