In primo luogo, mi dispiace per la mia mancanza di terminologia.Passa attraverso ogni nuovo oggetto da Costruttore
Se ho un costruttore
function myObject(name, value){
this.name = name;
this.value = value;
}
e faccio un paio di oggetti da essa
var One = new myObject("One", 1);
var Two = new myObject("Two", 2);
Posso ciclo attraverso ogni nuovo oggetto realizzato dalla classe myObject
, senza mettere ogni nuovo oggetto in un array?
sarebbe possibile aggiungere una funzione di richiamo istantaneo al costruttore che aggiunge l'oggetto a un array?
ad es.
function myObject(name, value){
this.name = name;
this.value = value;
this.addToArray = function(){
theArray.push(this); // this is the IIFE
}();
}
in questo modo tutti i nuovi oggetti creati eseguono istantaneamente questa funzione e vengono aggiunti all'array.
È possibile? (Sintassi corrente non funziona, ovviamente)
EDIT Tornando a questo un anno dopo posso dirvi che è possibile. Basta chiamare la funzione all'interno del costruttore in questo modo:
function myObject(name, value){
this.name = name;
this.value = value;
this.addToArray = function(){
theArray.push(this);
};
this.addToArray();
}
Ecco un esempio di questo in JSFIDDLE, spingendo ogni oggetto in un array su istanza e quindi chiamando il metodo di ciascun oggetto .speak()
direttamente dalla matrice.
https://jsfiddle.net/Panomosh/8bpmrso1/
Is Object.keys (Uno); quello che ti serve? –
Non puoi, non mantieni un riferimento ai tuoi oggetti. – Hacketo
Fondamentalmente voglio essere in grado di vedere ogni oggetto che ho creato da myObject Constructor. –