Перехват встроенных функций

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

Previous post Next post
Up