2015-07-19 3 views
0

У меня есть следующий код. Я хочу использовать ключевое слово prototype, поскольку я хочу вызывать функции метода, а не методы класса, почему это дает мне ошибку? Если я удалю вызов прототипа, это сработает. Как я могу написать этот код, чтобы я мог использовать экземпляры, а не методы класса?экземпляры модуля NodeJS

//app.js 
var MyTest = require('./MyTest') 
var myTestInstance = new MyTest() 
myTestInstance.testFunction(function(reply){ 
    console.log(reply) 
}) 

//MyTest.js 
module.exports = function() { 

    function MyTest() {} 

    MyTest.prototype.testFunction = function(cb) { 
     cb('hello') 
    } 

    return MyTest 

} 
+0

@JohnnyHK myTestInstance.testFunction (функция (ответ) {^ TypeError: undefined не является функцией в объекте

ответ

2

, чтобы ваш app.js работать, как это вам необходимо заменить содержание MyTest.js следующим:

function MyTest() {} 
MyTest.prototype.testFunction = function(cb) { 
    cb('hello'); 
}; 
module.exports = MyTest; 

Как вы его в app.js вам нужен конструктор а не заводскую функцию.

+0

Спасибо, что на самом деле помогло много. –

Смежные вопросы