Этого можно добиться, манипулируя контекстом this
вашей функции test()
, вызываемой setTimeout
.Вы хотите использовать свойство объекта, а не переменную для передачи ссылки на тайм-аут, потому что выполнение будет происходить асинхронно.
function delay(){
var obj = {};
obj.timeout = setTimeout(test.bind(obj), 1000)
}
function test() {
console.log(this.timeout);
}
delay();
Кроме того, вы можете просто передать объект в качестве третьего параметра в функцию setTimeout
, например:
function delay(){
var obj = {};
obj.timeout = setTimeout(test, 1000, obj)
}
function test(param) {
console.log(param.timeout);
}
delay();