Ich habe zwei IFFE:Wie durch Verweis übergeben oder emulieren es
var Helper = (function() {
return {
number: null,
init: function (num) {
number = num;
}
}
})();
var Helper2 = (function() {
return {
options: {
number: [],
},
init: function(num){
this.options.number = num;
},
getData: function() {
return this.options.number;
}
}
})();
Helper2.init(Helper.number);
console.log(Helper2.getData());
Helper.init(5);
console.log(Helper2.getData());
Was ich will, ist
Helper2.init(Helper.number);
console.log(Helper2.getData()); // null
Helper.init(5);
console.log(Helper2.getData()); // 5
was ich
istHelper2.init(Helper.number);
console.log(Helper2.getData()); // null
Helper.init(5);
console.log(Helper2.getData()); // null
Welche Techniken getan werden kann, um es als Referenz weitergeben zu lassen, wenn es möglich ist?
JSBIN: https://jsbin.com/gomakubeka/1/edit?js,console
Edit: Vor Tonnen von Menschen beinhaltet verschiedene Arten starten Helper2 depend on Helper
zu haben, die tatsächliche Umsetzung von Helper
unbekannt ist und konnte 100 von Möglichkeiten, haben sie die Zahl implementieren, so Helper2 die Speicheradresse benötigt.
Edit 2: Ich nehme an, der Weg, den ich hatte gehofft, einige Start auszukommen war zu wissen, dass Arrays/Objekte als Referenz übergeben bekomme, wie kann ich diese primitive Art wickeln in einer Weise, dass ich durch Verweis
verwenden können
Was ist konkret über den Code, den Sie haben? Wenn Sie sagen, dass es Hunderte von Möglichkeiten gibt, wie 'Helfer' die Zahl implementieren kann, bedeutet das, dass das aktuelle Schema ist, dass' Helfer' immer ein Attributrecht auf der Wurzel des Objekts vom 'Zahl' -Typ hat? – zero298
Warum kapseln Sie Helper nicht direkt in Helper2 ein? –
@ zero298 Ja. Es kann in einer Variablen mit dem Namen '.randomNumber' in jemand anderen Implementierung von' Helfer' sein. @ Jean-BaptisteYunès Ich würde eine Schnittstelle benötigen, die einen gemeinsamen Weg hat, um den gewünschten Wert zu erhalten, aber es gibt keine Schnittstelle (und Es gibt keinen strikten Weg, AFIK in js) zu machen. – CuriousDeveloper