Просто измените его на ads.display_ads
, обратите внимание, что это не String
. т.е.
var ads = {
init: function() {
ads.display_ads();
},
display_ads: function() {
console.log('Displaying Ads');
setTimeout(ads.display_ads, 5000);
}
}
Как @FelixKling указывает в своем комментарии ниже, будьте осторожны с тем, на что ссылается this
в ads.display_ads
. Если ads.display_ads
вызывается через ads.init()
или ads.display_ads()
this
будет ads
Object
. Однако при вызове через setTimeout
this
будет window
.
Если контекст важен, вы можете передать анонимную функцию в setTimeout
, которая в свою очередь вызывает ads.display_ads()
:
setTimeout(function() {
ads.display_ads();
}, 5000);
или
var self = this;
setTimeout(function() {
self.display_ads();
}, 5000);