Disons que je veux créer un objet appelé 'Vertex'. Habituellement, en Java je le ferais par:Comment créer un objet JavaScript avec des variables et des fonctions définies?
public class Vertex {
// member variables
public data;
private id;
// member methods
public Vertex() { /* default constructor */ }
public getID() { return id; }
}
Maintenant, comment ferais-je cela en JavaScript? Je veux préserver privé vs public? C'est ce que j'ai mis en place jusqu'à présent, mais je ne pense pas que ce soit correct, et je n'ai jamais traité de POO en JavaScript.
/**
* Vertex constructor.
*/
function Vertex(object) {
data = object;
id = object.getCode(); // each Vertex will have a unique id which will be the city code
};
Vertex.prototype = (function() {
// Private Members here
// Public Members inside return
return {
constructor : Vertex,
getID : function() {
return (id);
}
};
Je ne connais pas du tout les prototypes, mais j'essaie d'apprendre. Est-ce la bonne façon de faire cela? Si ce n'est pas le cas, j'essaie d'accomplir ce que le code Java ci-dessus fait, mais en le faisant en JavaScript.
duplication possible: http://stackoverflow.com/questions/55611/javascript-private-methods –
@David, j'ai regardé ce post ... et je pense que je l'ai imité correctement, mais la raison pour laquelle je demande est parce que quand j'imprime mon objet Vertex à la console FireBug, il n'affiche aucune des valeurs ... donc je ne pense pas que l'objet est correct. – Hristo
Note rapide ici, vos 'constructeurs par défaut 'sont inutiles, il n'y a pas de surcharge dans JS. –