Hallo,
ich bastel gerade an einem kleinen Canvas-Framework -> new Canvas( canvasId ).
In einigen anderen Frameworks habe ich gesehen, dass die Methoden/Props von
CanvasRenderingContext2D an den prototype des constructors gehängt werden,
etwa so:
function Canvas( canvasId ) {
var canv = document.getElementById( canvas );
this.ctx = canv.getContext( '2d' );
// more code
}
Canvas.prototype = {
stroke: function() { this.ctx.stroke(); },
// etc.
}
Dachte, man kann das auch in einer for-Schleife abwickeln, statt alles manuell anzuhängen, etwa so:
function Canvas( canvasId ) {
var canv = document.getElementById( canvasId );
this.ctx = canv.getContext( '2d' );
for ( var m in CanvasRenderingContext2D.prototype ) {
(function( that, m ) {
if ( typeof that.ctx[m] === 'function' ) {
// spendabel sein mit Anzahl Parameter, s.d. nie zu wenig:
Canvas.prototype[m] = function( a,b,c,d,e,f,g,h,i,j,k,l ) {
that.ctx[m]( a,b,c,d,e,f,g,h,i,j,k,l );
}
} else {
Canvas.prototype[m] = function( a ) {
that.ctx[m] = a;
}
}
})( this, m );
}
// weiterer Code
}
Jetzt denke ich mir aber, dass die Entwickler gut funktionierender libs Profis sind
und ihre Gründe dafür haben, das manuell zu machen - nur kenne ich diese Gründe
nicht.
Kann mir jemand sagen, ob meine Methode Schwierigkeiten/Fehlerquellen/... birgt?
Vielen Dank und liebe Grüße, Merle