是否可以使用变量声明来缩小DOM引用?
例如document.documentElement
:
var d = document;
console.log(d[d + 'Element']); // undefined
console.log(d[d] + 'Element'); // undefinedElement
为什么这不起作用?
答案 0 :(得分:2)
它不起作用,因为document
对象的字符串值不是字符串'document'
,它类似于'[object HTMLDocument]'
(可能因浏览器而异)。
当您将字符串'Element'
与document
对象连接起来时,该对象将隐式转换为字符串,并且您将获得类似'[object HTMLDocument]Element'
的字符串,document['[object HTMLDocument]Element']
为未定义。