2014-11-20 5 views
1

Я пытался создать модуль для node.js, и я заметил что-то. ПримерРазница между объявлением класса javascript

function Example() { 
    this.property = "something"; 

} 

Example.prototype.run = function() { 
    console.log('hello world') 
} 

module.exports = Example; 

с этим кодом говорится, что никакого метода не запускается. Мне нужно декларировать как

Example.prototype.run = function run() {} 

для работы. Почему это происходит?

+3

Как вы пытаетесь запустить его? Он отлично работает: 'var Example = require ('./ example.js'); new Example(). run(); ' – Amadan

ответ

3

Это должно работать хорошо до тех пор, пока вы на самом деле вызвать конструктор и создать объект, который, как вы настроили Пример кода:

var Example = require("./example"); 
var item = new Example(); 
item.run(); 
0

Вам нужно загрузить модуль и Instantiate на примере класс.

example.js:

function Example() { 
    this.property = "something"; 
} 

Example.prototype.run = function() { 
    console.log('hello world') 
} 

module.exports = Example; 

main.js:

var Example = require("./Example.js"); 
var example = new Example(); 
example.run(); 

пробег:

$ node main.js 
hello world