Je crée un petit wrapper pour canvas HTML5, et une chose que je fais est de renvoyer self/this de chacune de mes méthodes enveloppées pour faciliter le chaînage d'appel.Création de délégué répétitif JavaScript
Faute d'un meilleur nom, j'appelle mon emballage Toile. Il enveloppe essentiellement la toile et le contexte ensemble.
Une chose que je l'ai fait est d'ajouter les méthodes ci-dessous pour la Canvas.prototype
Canvas.fn = Canvas.prototype = {
save: function() { this.ctx.save(); return this; },
restore: function() { this.ctx.restore(); return this; },
scale: function (x, y) { this.ctx.scale(x, y); return this; },
rotate: function (angle) { this.ctx.rotate(angle); return this; },
translate: function (x, y) { this.ctx.translate(x, y); return this; },
transform: function (a,b,c,d,e,f) { this.ctx.transform(a,b,c,d,e,f); return this; },
est-il un moyen plus facile d'ajouter ces méthodes à l'aide de certains délégués? Peut-être avec un tableau ou les noms de fonctions? Notez que certaines méthodes prennent des arguments et que je veux les passer telles quelles à la méthode self.ctx actuelle.
Vous avez des fautes de frappe: int => var, fonctions => functionNames. – Ayman
Cela ne fonctionnerait pas, car au moment de l'appel, le nom de fonction [i] n'est pas connu, donc j'obtiens une erreur d'application appelée non définie. – Ayman
@Ayman: Ok, je pense que cela devrait être corrigé maintenant. J'ai corrigé les fautes de frappe et introduit des fermetures. – Eric