キャンバスコンテキストで呼び出されるすべてのメソッドにコードを追加しようとしています。各コマンドをコマンドの配列に追加できるように、これを実行しようとしています。これは私がうまくいくと思うコードです(しかしそうではありません):
var canvas = Object.getPrototypeOf(document.createElement('canvas').getContext('2d'));
for(p in canvas){
if(canvas.hasOwnProperty(p)){
var original = canvas[p];
canvas[p] = function(){
//extra code to be run
return original.apply(this,arguments);
}
}
}
これはうまくいくはずだと私には思えますが、そうではありません。このコードを例で使用すると、NOT_SUPPORTED_ERR: DOM Exception 9
デモ: http: //jsfiddle.net/J3tUD/2/