任何一个html元素的typeof都是object,但是你给Object.prototype下面挂载的属性方法不会挂到html元素下
HTMLElement.prototype.test=function(){alert(1)}
document.getElementsByTagName("body")[0].test()
上面代码在ff下工作,ie保护了HTMLElement对象,并且ie下压根没有HTMLElement对象Object.prototype.test=function(){alert(1)};
document.getElementsByTagName("html")[0].test();
上面代码只能在ff下运行,而ie会报没有该方法事实上html元素后面挂prototype可以
var e=new function(){this.test=function(){alert(1)};};
document.getElementsByTagName("html")[0].prototype=e
document.getElementsByTagName("html")[0].prototype.test();ie会保护html元素,所有的DOM元素虽然类型也是object但是并不继承自Object对象