2016-06-04 19 views
0

Ich spiele gerade mit Nodes.js herum und erstelle einen einfachen Bot als Beweis für das Konzept. Ich verwende das discord.js Paket.TypeError ist keine Funktion

Ich habe die folgenden Codes

// FluffBot class initialisation 
var FluffBot = function Constructor(settings, commands) { 
    this.settings = settings 
    this.commands = commands 
} 

// Run bot 
FluffBot.prototype.run = function() { 
    discord = new discord.Client() 
    discord.loginWithToken(this.settings.bot_token) 
    discord.on('ready', function(event) { 
     FluffBot._onReady(event) 
    }) 
} 

// On ready function 
FluffBot.prototype._onReady = function(event) { 
    discord.setPlayingGame('Alpha v1.0') 
    this.watcher() 
} 

ich die Lauffunktion in einer anderen js Datei bin Initiieren aber ich erhalte die folgende Fehler

TypeError: FluffBot._onReady is not a function at Client.<anonymous>

Irgendwelche Ideen auf, bekommen es die Funktion aufrufen das wäre großartig.

+0

Meine Vermutung ist, dass durch einen Ereignis-Listener Aufruf i neue würde eine neue Version des Bots zu instanziieren. Es wurde entschieden, es so zu überarbeiten, dass die Ereignis-Listener den Code nach Bedarf aufrufen, anstatt alles in der einen Datei zu tun. –

Antwort

1

Sind Sie sicher, dass FluffBot mit dem Schlüsselwort new instanziiert ist?

Man könnte hinzufügen, um dies zu verhindern:

if (!(this instanceof FluffBot)) { 
    return new FluffBot() 
} 
+0

Ich hatte den Eindruck, dass es abgesehen von der gleichen Klasse, die instanziiert wurde zu rufen, dass Calling ._onReady in Ordnung wäre –