Poster une réponse 
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Réflexion nocture : l'encaspulation en Javascript
Auteur Message
Maks Hors ligne
Posting Freak
*****

Messages : 809
Inscription : Apr 2007
Message : #11
Réflexion nocture : l'encaspulation en Javascript (Ce message a été modifié le : 02-18-2012 06:30 PM par Maks.)
Problème à la recopie pour attribut en effet, autant pour moi

Du coup je me suis induit en erreur, c'est ce que code qui est valide :

    JAVASCRIPT Programming
var Foo = function() {
 
  this.attribut1 = 0;
  this.attribut2 = "texte";
 
  var self = this; // conservation du contexte
 
  return {
    method1: function() { alert('method1 ok'); },
    getAttribut1: function() { return self.attribut1; },
    setAttribut1: function(value) { self.attribut1 = value; }
  }
};
 
var bar = new Foo();
 
alert(bar.attribut1); // undefined
 
bar.method1(); // renvoie method1 ok
bar.setAttribut1(3); // met bar.attribut1 à 3
alert(bar.getAttribut1()); // renvoie bar.attribut1

02-18-2012 06:29 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Maks Hors ligne
Posting Freak
*****

Messages : 809
Inscription : Apr 2007
Message : #12
Réflexion nocture : l'encaspulation en Javascript
Je fais mumuse 15
Syntaxe la plus rapide que j'ai pondu pour déclarer une classe. Sans le mot-clé new et le mot-clé function.

    JAVASCRIPT Programming
var Perso = Class({
  attribut1: false,
  attribut2: true,
  method1: function() { alert('je suis la méthode 1'); },
  method2: function() { alert('je suis la méthode 2'); }
});



    JAVASCRIPT Programming
function Class () {
 
  if(!this instanceof arguments.callee)
    return new Class(arguments);
 
  for (var key in arguments[0]) {
 
    if(typeof arguments[0][key] == "function")
      Class.prototype[key] = arguments[0][key];
    else {
      this[key] = arguments[0][key];
 
      (function(key) {
 
      Class.prototype['get' + key.charAt(0).toUpperCase() + key.substring(1).toLowerCase()] = function() { return this[key]; };
      Class.prototype['set' + key.charAt(0).toUpperCase() + key.substring(1).toLowerCase()] = function(value) { this[key] = value; };
 
      })(key);
    }
  }
 
  var self = this;
 
  var _class = function() {
 
    for (var key in self) {
 
      this[key] = self[key];
 
    }
  };
 
  _class.prototype = Class.prototype;
 
  return new _class();
 
}



    JAVASCRIPT Programming
alert(Perso.getAttribut1()); // false
Perso.method1(); // je suis la méthode 1

02-27-2012 04:49 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse 




ContactJeuWeb - Crée ton jeu par navigateurRetourner en hautRetourner au contenuVersion bas-débit (Archivé)Syndication RSS