Saya punya kelas, kira-kira seperti ini:

class Server {
    constructor() {
        this.server = http.createServer(function (req, res) {
            this.doSomething()
        });
    }

    doSomething() {
        console.log("Working")
    }
}

Saya ingin memanggil fungsi doSomething() saya dari dalam konstruktor, bagaimana saya bisa melakukan ini? Saya sudah mencoba melakukan this.doSomething() dan doSomething(), keduanya mengatakan itu bukan fungsi. Juga, katakan di konstruktor yang saya lakukan console.log(this.someValue), lognya tidak terdefinisi. Bagaimana saya bisa mengakses properti/metode kelas itu sendiri? Apakah mungkin? Terima kasih.

0
Yankue 11 Mei 2021, 21:43

1 menjawab

Jawaban Terbaik

Seperti yang Yousaf katakan, yang perlu Anda lakukan hanyalah menggunakan fungsi panah. Berikut adalah contoh yang menunjukkan tindakan ini, menggunakan setTimeout alih-alih http.createServer:

class Server {
    constructor() {
        this.server = setTimeout(() => {
            this.doSomething();
        }, 0);
    }

    doSomething() {
        console.log("Working");
    }
}

new Server();
1
Nisala 12 Mei 2021, 05:23