22 lines
354 B
JavaScript
22 lines
354 B
JavaScript
class Lazy {
|
|
#factory;
|
|
#initialized = false;
|
|
#value;
|
|
|
|
constructor(factory) {
|
|
this.#factory = factory;
|
|
}
|
|
|
|
get initialized() {
|
|
return this.#initialized;
|
|
}
|
|
|
|
get value() {
|
|
if (!this.#initialized) {
|
|
this.#initialized = true;
|
|
this.#value = this.#factory();
|
|
this.#factory = null;
|
|
}
|
|
return this.#value;
|
|
}
|
|
} |