Я использовал setTimeout
много раз, передавая функцию в качестве ссылки, например.
setTimeout(someFunction, 3000);
В некоторых случаях, чтобы сохранить значение this
, мне приходилось заранее присваивать его переменной, но я не понимаю, почему следующее не работает:
var logger = {
log: function() {
var that = this;
console.log(that.msg);
setTimeout(that.log, 3000);
},
msg: "test"
};
logger.log();
Однако использование анонимной функции работает:
var logger = {
log: function() {
var that = this;
console.log(that.msg);
setTimeout(function() { that.log() }, 3000);
},
msg: "test"
};