我试图延长的2dcontext对象的某些方法的功能的,但我不能得到它的工作方式我想:我要重写的方法,但我想从调用重写的方法原始方法是这样的:JS扩展功能的方法
//First get the original context
var ctx = canvas.getContext("2d");
//Create a class which uses ctx as it's prototype
var ExtendedContext = function(){};
ExtendedContext.prototype = ctx;
//And extend a method
ExtendedContext.prototype.fillRect = function(x, y, width, height) {
//Do some stuff
this.prototype.fillRect(x, y, width, height); //Doesn't work
//Do some more stuff
};
我怎么能说从我自己的方法里面原来fillRect
方法?
我忘了提及,但还有更多的方法需要覆盖,所以如果可能的话我不想保存手动覆盖的每个函数。但我想我可以简单地遍历所有函数,并将它们全部复制到某个对象。编辑:这个伎俩!谢谢! – Tiddo
@Tiddo:看到更新。 'Object.getPrototypeOf'应该为你做。 – jAndy
那是再好不过了!非常感谢! – Tiddo