JavaScript keys
■Object.keys()による出力
key[0] = 0, keys[0] = objectdescriptor_a, obj[0] = 100
key[1] = 1, keys[1] = objectdescriptor_b, obj[1] = 200
key[2] = 2, keys[2] = objectdescriptor_c, obj[2] = 300
key[3] = 3, keys[3] = objectdescriptor_d, obj[3] = 400
■for(... in ...)による出力
obj[0] = objectdescriptor_a, obj[objectdescriptor_a] = 100
obj[1] = objectdescriptor_b, obj[objectdescriptor_b] = 200
obj[2] = objectdescriptor_c, obj[objectdescriptor_c] = 300
obj[3] = objectdescriptor_d, obj[objectdescriptor_d] = 400

■Object.keys()による出力
key[0] = 0, keys[0] = property_a, obj[0] = 100
key[1] = 1, keys[1] = property_b, obj[1] = 200
■for(... in ...)による出力
obj[0] = property_a, obj[property_a] = 100
obj[1] = property_b, obj[property_b] = 200
obj[2] = prototype_add_property_c, obj[prototype_add_property_c] = 300
obj[3] = prototype_add_property_d, obj[prototype_add_property_d] = 400

■Object.keys()による出力
key[0] = 0, keys[0] = create_property_a, obj[0] = create_property_a
key[1] = 1, keys[1] = create_property_b, obj[1] = create_property_b
key[2] = 2, keys[2] = create_property_c, obj[2] = create_property_c
■for(... in ...)による出力
obj[0] = create_property_a, obj[create_property_a] = create_property_a
obj[1] = create_property_b, obj[create_property_b] = create_property_b
obj[2] = create_property_c, obj[create_property_c] = create_property_c
obj[3] = objectdescriptor_a, obj[objectdescriptor_a] = 100
obj[4] = objectdescriptor_b, obj[objectdescriptor_b] = 200
obj[5] = objectdescriptor_c, obj[objectdescriptor_c] = 300
obj[6] = objectdescriptor_d, obj[objectdescriptor_d] = 400