27-02-2012, 04:49 PM
Je fais mumuse iffle:
Syntaxe la plus rapide que j'ai pondu pour déclarer une classe. Sans le mot-clé new et le mot-clé function.
Syntaxe la plus rapide que j'ai pondu pour déclarer une classe. Sans le mot-clé new et le mot-clé function.
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'); }
});
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();
}
alert(Perso.getAttribut1()); // false
Perso.method1(); // je suis la méthode 1