Вы, безусловно, можете ссылаться createImageData
на объект-прототип интерфейса:
CanvasRenderingContext2D.prototype.createImageData.call({ }, 100, 100); // ImageData
Однако в некоторых средах (например, WebKit) добавляются ограничения на тип объекта, в контексте которого createImageData
должен вызываться метод (и, вероятно, другие):
CanvasRenderingContext2D.prototype.createImageData.call({ }, 100, 100); // TypeError: Illegal invocation
Это работает по крайней мере в Firefox по ночам (только что отмечен).
Напоминает мне об ограничении контекста в другом WebKit с помощью console.log
:
console.log.call({ }, 1); // TypeError: Illegal invocation
console.log.call(console, 1); // logs 1