The problem with that being that you redefine the unpack function every time a tuple is created. The this._NAME = VALUE; may look awful but it's more efficient.
You are just relying on your users to not abuse _ prefixed variables. It's far from ideal.