Laura: extend Canvas-Framwork-prototype mit CRC2D-props/meths

Beitrag lesen

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