konstruktor, obiekty, problem z jsem

0

A więc tak, mam konstruktor dajmy na to

function obiekt(_x, _y)
{
    this.x = _x;
    this.y = _y;
}

Tworzę obiekty

var pierwszy = new obiekt(5,10);
var drugi = new obiekt(10,30);

I dajmy na to że nie wiem ile będzie wszystkich obiektów
a chciałbym w jakiejś zmiennej zapisać sumę wszystkich '**x'**ów
z wszystkich obiektów które zostaną utworzone

w sensie

var suma = pierwszy.x + drugi.x .... ; 

Jak mam zrobić tą pętle? Jest taka możliwość? Po czym mam iterować?

2

wsadź je do jakiejś tablicy i iteruj po obiektach, albo użyj funkcji reduce.

I dajmy na to że nie wiem ile będzie wszystkich obiektów

jeśli tworzysz obiekty w wielu miejscach programu i chcesz wiedzieć na bieżąco ile obiektów jest utworzonych to możesz też nie używać gołego new, tylko zrobić fabrykę, która będzie tworzyła obiekt i automatycznie dodawała go do tablicy:

const allObjects = [];
function createObject(x, y) {
   const obj = new obiekt(x, y);
   allObjects.push(obj);
   return obj;
}
...
const pierwszy = createObject(10, 10)

jeśli akurat masz taką potrzebę, bo nie wiem do końca co chcesz zrobić (może wystarczy sama tablica i potem pętla for, ew. funkcja reduce), np. tak https://jsfiddle.net/ky613xbe/

0
LukeJL napisał(a):

wsadź je do jakiejś tablicy i iteruj po obiektach, albo użyj funkcji reduce.

I dajmy na to że nie wiem ile będzie wszystkich obiektów

jeśli tworzysz obiekty w wielu miejscach programu i chcesz wiedzieć na bieżąco ile obiektów jest utworzonych to możesz też nie używać gołego new, tylko zrobić fabrykę, która będzie tworzyła obiekt i automatycznie dodawała go do tablicy:

const allObjects = [];
function createObject(x, y) {
   const obj = new obiekt(x, y);
   allObjects.push(obj);
   return obj;
}
...
const pierwszy = createObject(10, 10)

jeśli akurat masz taką potrzebę, bo nie wiem do końca co chcesz zrobić (może wystarczy sama tablica i potem pętla for, ew. funkcja reduce), np. tak https://jsfiddle.net/ky613xbe/

Genialne, tego właśnie potrzebowałem, dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1