質問内容
http.createServer()
にオブジェクトが呼び出されたときのコールバック関数を指定しますが、これにメンバ関数を指定した場合に呼び出し元のオブジェクトを参照する方法を教えていただきたいです。
下のコードだと、コールバック関数に指定している on_message_recieved()
内で this.log_dir
を参照したいのですが、現状だと undefined になってしまいます。
調べたら、匿名関数の場合だと var self = this;
を使う方法などが出てきたのですが、メンバ関数の場合にどのようにすればいいかわかりません。
よろしくおねがいします。
環境
- nodejs: v12.18.1
コード
js
1http = require("http") 2 3class Server { 4 constructor() { 5 this.log_dir = "log"; 6 } 7 8 start() { 9 this.server = http.createServer(this.on_message_recieved).listen(8000); 10 } 11 12 on_message_recieved(req, res) { 13 console.log(this.log_dir); // "log" と出力されてほしい これを参照したいが undefined になる 14 res.end("OK"); 15 } 16} 17 18var server = new Server() 19server.start()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/24 07:04