Bonjour,
je reprends le javascript après avoir longuement codé assez salement, je voudrais reprendre sur de bonnes bases.
Après avoir cherché sur le net je voulais savoir si j'avais bien compris certaines choses :
1 2 3 4 5 6 7
| function classe (){
var a = 1 ; -> privé
this.b = 2 ; -> publique
this.c = function(){}; ->publique
var d = function(){}; ->privé
function e(){};-> privé
} |
(ici, non accessible ici par le constructeur)------
classe.f = 3; ->attribut statique/publique
classe.prototype.g=4; ->publique , ajouté à la classe et toutes les instances existantes ou non
classe.prototype.h = function(){}; -> publique
instance.a = 8; ->publique, propre à l'instance / redéfinition[/code]
------
qlqs questions :
1) est ce qu'il y a un meilleur moyen (plus propre) pour qu'une instance puisse atteindre le champ statique de sa classe que : classe.champStatic ?
2) prototype est une super classe qui est vérifié lorsqu'un champ ou une méthode n'est pas trouvé dans la classe, mais je ne vois pas l’intérêt autre que de permettre d'ajouter un champ ou une méthode dynamiquement à une classe et ses instances.
est ce que peut être le prototype d'une classe n'existe qu'une fois et une méthode qui n'existe pas dans un objet est cherché dans le prototype de la classe et donc là oui, on gagne en mémoire puisque non recopié dans chaque instance ?
donc dans ce cas pourquoi ne pas tout mettre dans prototype ?
3) qu'elle est la différence entre :
et
à part que la 2eme est une fonction anonyme et les 2 privées ?
merci pour les réponses
j'espère ne pas avoir dit trop de stupidités
Partager