OOP et javascript : proto ou pas proto ?
Bonjour, après des années passées à utiliser les frameworks existants j'essai de revenir à l'essentiel pour une meilleure compréhension.
En premier lieu je cherche à transposer mes connaissances de l'OO vers javascript à l'aide d'un bouquin (jS, gardez le meilleur de Douglas Crockford).
Bon, bref. J'ai bien compris qu'il n'y a pas de notion de classe en JS et que tout est objet. Je vois aussi à quoi sert le prototype.
Par contre, j'ai fait un petit test et il y a un truc qui m'échappe.
Quelle est la différence entre les méthodes dosomething et sogood ??
A l’exécution j'obtiens exactement le même comportement (attendu). Dans ce cas, pourquoi devrais-je utiliser une déclaration par prototype ?
Merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
var Player = function (name) {
this.name = name;
this.dosomething = function(arg) {
console.log(this.name + ' here with ' + arg);
}
}
Player.prototype.sogood = function(arg) {
console.log(this.name + ' here proto with ' + arg);
}
var p1 = new Player('bodo');
p1.dosomething('toto');
p1.sogood('toto'); |
Ah puis, tant qu'on y est - quelle est la différence entre
Code:
1 2
| var Player = function (name) {
} |
et
Code:
1 2
| var Player = function Player(name) {
} |