我有一个属性可以是一个图像(即IMG元素)或一个画布的类.当我将其序列化到
JSON时,我需要将其转换为文本字符串.如果是Canvas,那么我可以调用Canvas#toDataURL.但是,如果是一个图像,我首先需要将其绘制到Canvas#canvasImage上,然后使用toDataURL序列化该canvas.
那么如何确定对象是Canvas还是Image? (由于Canvas#drawImage能够接受Image或Canvas对象作为参数,所以必须有一种方法.)
我看到一些程序员测试某些属性或函数的存在来确定类,但是我想知道如果这些对象所呈现的API发生变化,是否有更聪明的方式不会中断.
解决方法
function isImage(i) { return i instanceof HTMLImageElement; }