Associative array with internal associations

I am completing a number system converter that automatically selects the correct symbol chart according to radix or base of the number system. Therefore, I made an associative array with number systems that can be called by number base (.e.g 64) or convention name (e.g. "Bitcoin") In some cases, the symbol chart of a certain number base corresponds to a convention name or vice-versa. As there are many number bases and many conventions, I don't want to repeat the content of same the symbol charts over and over.

In fact, I would like to have an associative array that has one key that refers to another key in the same array that finds the data. In other words, calling an element by internal association would keep the associative array short, readable and self-explanatory.

Try the snippet here below where the base_def object is explicitly mentioned:

85:_ref("RFC 1924",base_def)

String.prototype.RngRep = function(_a) { return this.replace( RegExp("\\[("+_a+")\\]","g") ,String.fromCharCode(..." ".repeat(_a.charAt(2).charCodeAt()-_a.charAt(0).charCodeAt()+1).split("").map((e,i)=>i+_a.charAt(0).charCodeAt())) ) }
var _rng = function(_a){ return _a.RngRep('0-9').RngRep('A-Z').RngRep('a-z') }

function _ref(_x,_y) { return _x+" / "+typeof(_y)+" / "+_y[_x]    }

var base_def = {
36:_rng("[0-9][A-Z]"),
45:_rng("[0-9][A-Z] $%*+-./:"),
58:_rng("123456789ABCDEFGHJKLMNPQRSTUVWXYZ[a-z]"),
64:_rng("[A-Z][a-z][0-9]+/"),
85:_ref("RFC 1924",base_def),
91:_rng("[A-Z][a-z][0-9]!#$%&()*+,./:;<=>?@[]^_`{|}~\""),
"geohash":_rng("[0-9]bcdefghjkmnpqrstuvwxyz"),                                    // base 32
"RFC 4648":_rng("[A-Z]234567"),                                                   // base 32
"Bitcoin":_rng("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),     // base 58
"RFC 1924":_rng("[0-9][A-Z][a-z]!#$%&()*+-;<=>?@^_`{|}~")                         // base 85
}

console.log(base_def["RFC 1924"]);
console.log(base_def[85]);

When I read base_def[85], function _ref is called successfully, but it does not recognise the existence of base_def anymore that I just passed as an argument to that function. At the time of reading base_def[85], I expect base_def to be already well-enough defined.

In fact, I expect base_def[85] to return

"RFC 1924 / object / 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~"

instead of

"RFC 1924 / object / undefined"

EXTERNAL ASSOCIATION

I'm not sure if after all internal associations are anyway possible with Javascript associative arrays, which is the center topic of my question. Surely, base_def can be easily defined by external association as shown here below. Somehow, this is less readable.

String.prototype.RngRep = function(_a) { return this.replace( RegExp("\\[("+_a+")\\]","g") ,String.fromCharCode(..." ".repeat(_a.charAt(2).charCodeAt()-_a.charAt(0).charCodeAt()+1).split("").map((e,i)=>i+_a.charAt(0).charCodeAt())) ) }
var _rng = function(_a){ return _a.RngRep('0-9').RngRep('A-Z').RngRep('a-z') }

var _ref = {
"RFC 1924":_rng("[0-9][A-Z][a-z]!#$%&()*+-;<=>?@^_`{|}~")
}

var base_def = {
64:_rng("[A-Z][a-z][0-9]+/"),
85:_ref["RFC 1924"],
"RFC 1924":_ref["RFC 1924"]
}

console.log(base_def["RFC 1924"]);
console.log(base_def[85]);