J'ai deux IFFE:Comment passer par référence ou imiter
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());
Ce que je veux est
Helper2.init(Helper.number);
console.log(Helper2.getData()); // null
Helper.init(5);
console.log(Helper2.getData()); // 5
ce que je reçois est
Helper2.init(Helper.number);
console.log(Helper2.getData()); // null
Helper.init(5);
console.log(Helper2.getData()); // null
Quelles techniques peuvent faire le faire passer par référence, s'il le peut?
JSBIN: https://jsbin.com/gomakubeka/1/edit?js,console
Edit: Avant tonnes de gens commencent à intégrer différentes façons d'avoir Helper2 depend on Helper
, la mise en œuvre effective de Helper
est inconnu et pourrait avoir 100 de moyens qu'ils mettent en œuvre le nombre, donc Helper2 a besoin de l'adresse mémoire.
Edit 2: Je suppose que le chemin que j'espérais obtenir un certain départ sur était de savoir que les tableaux/objets ne soient passés par référence, comment puis-je envelopper ce type primitif de telle sorte que je peux utiliser par référence
Ce qui est concret sur le code que vous avez? Quand vous dites qu'il y a 100 façons dont 'Helper' peut implémenter le nombre, cela signifie-t-il que le schéma courant est que' Helper' aura toujours un attribut sur la racine de l'objet qui est de type 'Number'? – zero298
Pourquoi ne pas encapsuler Helper directement dans Helper2? –
@ zero298 Oui. Il peut être dans une variable appelée '.randomNumber' dans quelqu'un elses implémentation de' Helper' @ Jean-BaptisteYunès J'aurais besoin d'une interface alors qui a un moyen commun d'obtenir la valeur que je veux, mais il n'y a pas d'interface (et il n'y a pas un moyen strict de le faire AFIK en js). – CuriousDeveloper