Вместо этого вы можете использовать геттер, главное отличие здесь в том, что при каждом доступе вещь будет воссоздана, но хорошо, что вы сможете преодолеть ее по-другому;)
И да, я изменил еек функции стрелки здесь, но я мог бы также привязать функцию обратного вызова
function Thing(fun){
this.funThing = fun
}
let literal = {
get thing() {
return new Thing(() => {
console.log(this)
});
}
}
literal.thing.funThing()