このRegExp.exec関数は、ハイブリッド配列のようなものを返します。配列ですが、プロパティがあります。
console.log(/d(b+)(d)/i.exec("cdbBdbsbz"));
// => ["dbBd", "bB", "d", index: 1, input: "cdbBdbsbz"]
result[0]、result[1]、result.index、result.inputなどを呼び出すことができます。
自分で作るにはどうすればいいですか?
[0, 1, "a": 1]は明らかに構文エラーであり、プロパティにインデックスを付けてアクセスできるオブジェクトを提供しますが、によって{"0": 1, "1": 1, "a": 1} 返されるものとexecは異なります。
私はそれをやってみました__proto__:
arr = [1, 2, 3];
arr.__proto__.a = 1 // arr.a is 1 now
しかしconsole.log、 の結果で実行したときのようにプロパティを表示しないexecので、それでも同じではないと思います。