Nov 21, 2010 08:37
Javascript, например
function init() {
HTMLCanvasElement_orig = HTMLCanvasElement.prototype
newCanvasPrototype = function () {
this.getContext = function() {
ctx = HTMLCanvasElement_orig.getContext.apply(this, arguments)
ctx.setTransform = function() {trackTransform.apply(this, arguments)}
return ctx
}
}
newCanvasPrototype.prototype = HTMLCanvasElement.prototype
HTMLCanvasElement.prototype = new newCanvasPrototype()
}
function trackTransform() {
console.log ("Called custom transform")
this.constructor.prototype.setTransform.apply(this, arguments)
}
Сделал и перестал понимать, почему оно работает только так, а не иначе.
javascript,
override