"by lazy" in JavaScript? (ES6+)

Slightly off-topic, I’m asking if you can do a Kotlin thing in ES6.

I enjoy many features in Kotlin (thank you!)
One very useful one is lazy single-time instantiation using the val foo:T by lazy { bar() }

Is there a standard (and easy) way to do this in vanilla ES6? I’d love to have my various script “let myDebRef” that are eventually constructed in the script instead be constructed on-demand. I could hack together a way for each function to cache the value in the global state, but that feels… smelly.

This isn’t horrible, but it still means all references to the variable need to instead be function calls.

const memoize = fn => {
    const cache = {};
    return (...args) => {
        const stringifiedArgs = JSON.stringify(args);
        return (cache[stringifiedArgs] = cache[stringifiedArgs] || fn(...args));