Je suis novice en matière de JavaScript, c'est donc peut-être une question triviale :
J'essaie de construire un objet qui stocke une correspondance entre un ensemble d'entiers et certaines de ses méthodes, c'est-à-dire quelque chose comme ceci :
'use strict';
function Foo() {
this.funcs = {
1: this.func1,
2: this.func2,
}
}
Foo.prototype.func1 = function() {
this.prop = 1;
}
Foo.prototype.func2 = function() {
this.prop = 2;
}
J'aimerais alors pouvoir appeler des méthodes de Foo
comme ça :
foo = new Foo();
var func = foo.funcs[1];
func();
Mais cela a pour conséquence : Cannot set property 'prop' of undefined
es decir this
ne fait pas référence à foo
.
Quel est le problème ici et y a-t-il une meilleure façon de mettre cela en œuvre ?