Pau*_*och 16 javascript reflection canvas
我有一个具有属性的类,可以是Image(即IMG元素)或Canvas.当我将它序列化为JSON时,我需要将其转换为文本字符串.如果它是Canvas,那么我可以调用Canvas#toDataURL.但如果它是一个Image,我首先需要使用Canvas#drawImage将其绘制到Canvas,然后使用toDataURL序列化该画布.
那么如何确定对象是Canvas还是Image?(因为Canvas#drawImage能够接受Image或Canvas对象作为参数,所以必须有办法.)
我已经看到一些程序员测试某些属性或函数是否存在以确定类,但我想知道如果这些对象提供的API发生变化,是否有更智能的方法不会中断.
Jam*_*mes 31
function isImage(i) {
return i instanceof HTMLImageElement;
}
Run Code Online (Sandbox Code Playgroud)
Cre*_*esh 11
如果需要考虑跨窗口/帧兼容性,可以检查nodeName:
var isImg = (element.nodeName.toLowerCase() === 'img');
Run Code Online (Sandbox Code Playgroud)
小智 6
function isCanvas(i) {
return i instanceof HTMLCanvasElement;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13842 次 |
| 最近记录: |