Po pierwsze, przepraszam za mój brak terminologii.Pętla przez każdy nowy Obiekt od Konstruktora
Jeśli mam konstruktora
function myObject(name, value){
this.name = name;
this.value = value;
}
i zrobię kilka przedmiotów z niego
var One = new myObject("One", 1);
var Two = new myObject("Two", 2);
mogę pętli każdego nowego obiektu wykonanego z klasy myObject
, bez narażania każdy nowy obiekt w tablica?
byłoby możliwe dodanie funkcji Natychmiast Wywoływanie do konstruktora, który dodaje obiekt do tablicy?
np.
function myObject(name, value){
this.name = name;
this.value = value;
this.addToArray = function(){
theArray.push(this); // this is the IIFE
}();
}
ten sposób wszelkie nowe obiekty utworzone natychmiast uruchomić tę funkcję i dodawane do tablicy.
Czy to możliwe? (Prąd składnia nie działa, oczywiście)
EDIT Wracając do tego rok później mogę powiedzieć, że jest to możliwe. Wystarczy wywołać funkcję wewnątrz konstruktora tak:
function myObject(name, value){
this.name = name;
this.value = value;
this.addToArray = function(){
theArray.push(this);
};
this.addToArray();
}
Oto przykład tego w JSFIDDLE, spychając każdego obiektu do tablicy na instancji, a następnie wywołanie .speak()
metody każdy obiekt bezpośrednio z tablicy.
https://jsfiddle.net/Panomosh/8bpmrso1/
To Object.keys (jeden); czego potrzebujesz? –
Nie możesz, nic nie zachowaj odniesienia do twoich obiektów. – Hacketo
Zasadniczo chcę móc zobaczyć każdy obiekt, który utworzyłem z myObject Constructor. –