入力番号の引数に基づいてオンザフライで動的にオブジェクトを作成する関数を作成しようとしていますが、Object.create()の部分を反復する問題が発生しています。私はforループで私のiをどこで演奏するのかはわかりませんが、理想的にはsportsArrayオブジェクトはすべてsportsArrayに格納されています。それは少なくとも目標です。javascriptでObject.createを使って多くのオブジェクトを作成するためにforループを反復処理する方法はありますか?
あなたがループ内の配列内のオブジェクトをプッシュするだけで済みますfunction car(doors, capacity, storage) {
this.doors = doors;
this.capacity = capacity;
this.storage = storage;
};
var van = Object.create(car);
van.doors = 4;
van.storage = "rear storage";
var miniVan = Object.create(van);
miniVan.capacity = "200 LB";
var cargoVan = Object.create(van);
cargoVan.capacity = "800 LB";
var truck = Object.create(car);
truck.doors = 2;
truck.storage = "bed";
truck.capacity = "1500 LB";
var familyCar = Object.create(car);
familyCar.doors = 4;
familyCar.storage = "large trunk";
familyCar.capacity = "300 LB";
var sportsCar = Object.create(car);
sportsCar.doors = 2;
sportsCar.storage = "small trunk";
sportsCar.capacity = '100 LB';
function tally(n1, n2, n3, n4, n5) {
var sportArray = [];
var familyArray = [];
var truckArray = [];
var miniArray = [];
var cargoArray = [];
sportsObjs = for(var i = 0; i < n1; i++){
Object.create(sportsCar);
}
sportArray.push(sportsObjs);
for (var i = 0; i < n2; i++){
Object.create(familyCar);
}
for(var i = 0; i < n3; i++){
Object.create(truck)
}
for(var i = 0; i < n4; i++){
Object.create(miniVan)
}
for(var i = 0; i < n5; i++){
Object.create(cargoVan)
}
return console.log(sportsArray);
}
'' car'は期待通りに機能しません。コンストラクタ関数です。 'car'をプロトタイプオブジェクトにしてオブジェクトリテラルにします。 – Bergi
@Bergiあなたは私のために明確にすることができますか?私はecma5標準で正しく設定したと思った。 – cristodagama
@Bergi理想的には、集計機能のすべての.capacityプロパティにアクセスできるようにしたい。/ – cristodagama