For example, if I want to split every property of an object into a normal value and a getter, I can't use a for in because the get function would be return this["_" + i]. What I'd expect is i === "name" -> create getter -> getter returns this._name, but since "_" + i is only evaluated when it runs, the getter would look for this["_" + i].
Which means getters can't be used with any kind of modular object. They can only be defined one by one, and they can't use any variables except globals and properties of the object they're on.
Is there any kind of workaround to that? I'd use the function constructor, but there's no place to use it.