Mon collègue a été à l'aide de "nouvelle fonction()" avec une minuscule "f" pour définir de nouveaux objets en JavaScript. Il semble bien fonctionner dans tous les principaux navigateurs et il semble aussi être assez efficace pour cacher les variables privées. Voici un exemple:
var someObj = new function () {
var inner = 'some value';
this.foo = 'blah';
this.get_inner = function () {
return inner;
};
this.set_inner = function (s) {
inner = s;
};
};
Dès que "cela" est utilisé, il devient une propriété publique de someObj. Donc someObj.toto, someObj.get_inner() et someObj.set_inner() sont tous à la disposition du public. En outre, set_inner() et get_inner() sont privilégiés méthodes, afin qu'ils aient accès à "l'intérieur" par le biais de fermetures.
Cependant, je n'ai pas vu de référence à cette technique. Même Douglas Crockford de JSLint se plaint à ce sujet:
- bizarre de la construction. Supprimer les "nouveaux"
Nous sommes à l'aide de cette technique dans la production, et il semble bien fonctionner, mais je suis un peu anxieux à ce sujet car il n'est pas documentée n'importe où. Personne ne sait si c'est une technique valable?