2016-06-26 14 views
0

私はTelegramボットを作成し、そのためのモジュールのようなアーキテクチャを実装しようとしています。キーワード "this"をeventHandler関数に組み込み、クラスにランブラー

class inlineVacationsHandler { 
    constructor(bot){ 
     this.bot = bot; 
     this.bot.on('inline_query',this.handler); 
    } 


    handler(msg){ 
     console.log(this.bot); 
    } 
} 


var bot = new TelegramBot(config.token_dev, {polling: true}); 

var inline = new inlineVacationsHandler(bot); 

しかし、問題は、この場合には、「これは」指していないので、私は、なeventHandlerでクラスフィールド「ボット」を使用できないこと、である:だから、インラインクエリを処理するために、私は、そのクラスを作成していますinlineVacationsHandlerクラス。だから、どのように私は "ボット"オブジェクトをhadler関数から得ることができますか?ありがとう。私はNode.jsとES2016を使用しています。

答えて

1
class inlineVacationsHandler { 
    constructor(bot){ 
     this.bot = bot; 
     this.bot.on('inline_query',this.handler.bind(this)); 
    } 


    handler(msg){ 
     console.log(this.bot); 
    } 
} 


var bot = new TelegramBot(config.token_dev, {polling: true}); 

var inline = new inlineVacationsHandler(bot); 

使用this.bot.on( 'inline_query'、this.handler.bind(この));

+1

ありがとうございます!この愚かな質問を申し訳ありません、バインド機能を完全に忘れてしまいました。 – Pter

関連する問題