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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var Player = function (name) {
}
et

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var Player = function Player(name) {
}