А можно и по-извращаться.)
Например мне нравится такой милый ленивый геттер, который заодно ещё и биндит this к функции, 2 в 1
:
var obj = {
bar: false,
get foo(){
this.bar = 2;
delete this.foo;
return this.foo = () => {
this.bar *= 2;
}
}
}
setTimeout(obj.foo, 100);
setTimeout(()=>console.log(obj.bar), 200);
оно конечно надо не всегда, но когда совпадает - приятно.)