class Foo { #bar = "foo"; test() { return this.#bar; } update() { this.#bar++; } set(val) { this.#bar = val; } static test(foo) { return foo.#bar; } static update(foo) { foo.#bar **= 2; } } const f = new Foo(); expect(f.test()).toBe("foo"); expect(Foo.test(f)).toBe("foo"); expect("bar" in f).toBe(false); f.set(1); expect(f.test()).toBe(1); f.update(); expect(Foo.test(f)).toBe(2); Foo.update(f); expect(f.test()).toBe(4);