关于iscroll的一段代码,希望有人解释

这里的if (el instanceof SVGElement)用意应该是一个能力检测,但是我发现传入的元素el,他的原型链上是否有SVGElement和它是否具有getBoundingClientRect好像并没有什么关系吧?即使一个元素的原型链上没有SVGElement,它还是有getBoundingClientRect方法的,那这里的写法到底是什么意思呢?

    me.getRect = function(el) {

        if (el instanceof SVGElement) {
            var rect = el.getBoundingClientRect();
            return {
                top : rect.top,
                left : rect.left,
                width : rect.width,
                height : rect.height
            };
        } else {
            
            return {
                top : el.offsetTop,
                left : el.offsetLeft,
                width : el.offsetWidth,
                height : el.offsetHeight
            };
        }
    };

感谢!

CRIMX

有理有据,令人信服!

阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题