フラナガンの本からのこのコードについて:
var o = {x:1, y:4};
var keys = Object.keys(o);
var values = [];
console.log(keys); //[ 'x', 'y' ]
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
values[i] = o[key];
}
console.log(values); //[ 1, 4 ]
の直後の行で o のプロパティ VALUES にアクセスするために、最初に keys[i] をキー変数に格納する必要があるのはなぜですか? values[i] = o[keys] (undefined undefined を返す) を単に置くことができないのはなぜですか? 「key」は任意の変数名です。o[key] で o VALUES との対応を確立する魔法がわかりません。