<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function Peon(number) {
this.number = number;
this.inc = function() {
number=number+1;
};
return true;
}
var p=new Peon(10);
function returnNumber() {
p.inc();
alert(p.number);
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT id="b00" TYPE="button" Value="Click" onClick="returnNumber()">
</BODY>
</HTML>
Ce code ne fonctionne pas comme prévu. Est-il un moyen de le faire fonctionner sans avoir à écrireAccès aux variables dans les objets en javascript sans "this"
this.number=this.number+1;
Ici, il est un choix trivial, mais dans les grands codes ne pas avoir cela. *, Il serait beaucoup plus facile à lire. C'est possible?
Vous pouvez lire à propos du modèle privé de Crockford sur son site: http://javascript.crockford.com/private.html Il est ** très important de noter que si vous allez avoir beaucoup de Peons, ce modèle de membre privé consomme nettement plus de mémoire que d'utiliser une propriété, car chaque objet individuel aura sa propre copie des deux fonctions. défini dans le constructeur. Ils ne sont pas et ne peuvent pas être partagés entre des objets. Donc, le compromis est la confidentialité v. Utilisation de la mémoire. La consommation de mémoire est un problème majeur sur IE et Firefox. Si vous n'allez avoir que quelques Peons, cela n'a pas d'importance. –
Merci, c'est ce que je cherchais –
'return true' est en effet superflu et essentiellement ignoré à la fin d'un constructeur, mais retourner un objet plutôt qu'une primitive ne serait pas ignoré et retournerait cet objet plutôt que le nouveau' Peon' objet. –