2016-10-09 19 views
0

Если у меня есть что-то вроде этого:Как передать информацию из переменной-члена в метод-член при использовании node-cron?

Foo = function (bar_) { 
    this.bar = bar_; 
    this.run = function() { 
    cron.schedule('*/5 * * * * *', function() { 
     console.log(/*this.bar?*/); 
    }); 
} 

var myvar = new Foo("mybar"); 
myvar.run(); 

Как я могу установить хрон, чтобы распечатать значение this.bar в то время this.run называется? Я пробовал с this.bar, и он возвращает undefined.

ответ

1

Вы можете попробовать это:

Foo = function (bar_) { 
this.bar = bar_; 
var that = this 
this.run = function() { 
    cron.schedule('*/5 * * * * *', function() { 
     console.log(that.bar); 
    }); 
} 

var myvar = new Foo("mybar"); 
myvar.run(); 

Объяснение приходит следующим образом: это является ссылкой на экземпляр класса Foo, но это также ссылка по умолчанию для любого экземпляра объекта к себе ,

Так, внутри cron.schedule вызова это указывает на хрон и не Foo. Копирование это к , что раньше, и с помощью , что внутри cron.shcedule дает правильный объект («это») вы ищете

+0

бы там быть никакой разницы, если я ставлю линию, которую вы добавили в функция запуска? – Bren

+0

, вероятно, нет, но, не уверен – mtsdev