function getStyle(element, styleProp) {
if (element === ''+element) element = document.getElementById(element);
return element.currentStyle ? element.currentStyle[styleProp] :
getComputedStyle(x,null).getPropertyValue(styleProp);
}
在stackoverflow一个问题中看到的一段代码,想请教下大佬们if (element === ''+element)
这个判断有什么意义吗
肯定是有意义的!把代码稍微整理下,看着清晰点。
来分析一下:
这句代码你能推测出来,此处的element是一个对象。继续往前查,element是外部传进来的。
这个判断的字面操作,把element转换成字符串,看是否与原element相等。相等的情况下,也就是说element是一个html元素的id,用这个id获取html元素并重新赋值给element变量。如果不相等,则element为html元素,直接获取该元素上的样式。
推测上,这么写的用意应该是调用此方法时传进来的参数不固定,有的时候是html元素,有的时候是html元素的id。关键在于js类型转换,看下测试代码,很明显answer-question和[object HTMLHeadingElement]这两个字符串是不相等的。
