原因是发现document.all方法的Boolean值为false,
而使用typeof(document.all) 返回值是undifined,
但是document.all确实是有值的。
是否有某些方法可以重写对象本身的Boolean值的方法呢?
原因是发现document.all方法的Boolean值为false,
而使用typeof(document.all) 返回值是undifined,
但是document.all确实是有值的。
是否有某些方法可以重写对象本身的Boolean值的方法呢?
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
6 回答2.4k 阅读
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
ES 规范定义了一种
[[IsHTMLDDA]] internal slot
的内部属性,拥有这个属性的对象,特点就是你看到的,typeof 值是 undefined,Boolean 值是 false。而这个属性现在仅被
document.all
使用,document.all
是早年 IE 定义的浏览器方法,其它浏览器也沿用下来了,但现在已经被 Web 规范废弃了,现代规范为了向下兼容,才给它定义了这么奇怪的特性,可以看成是一种例外。