It should work well defining the scope with a parenthesis, like
static(object) // closest object parent static(global) // totally global, same for each instance of the object static(parent) // closest parent static(<name>) static(foo) // stored with parent function above static(Foo) // stored with parent object above
+1, but with minor reservation for "parent", which would clash with an outer function or class somewhere named "parent", overshadowing either of the two scopes (the parent scope / the named scope).
("object" will of course do, as it's already a reserved keyword, and global, while not a keyword IIRC, is already used as a reference to the global scope, if not overridden, so that usage already has some precedence to it.)