我知道Object.prototype
不應該被改變,但出於好奇,在IE < 9中,所有不能繼承的對象都是Object.prototype
?IE中的對象列表<9無法繼承Object.prototype
到目前爲止,以下所有內容都不能從Object.prototype
繼承。
- 警報
- 使用document.createElement
- 的setTimeout
- 的setInterval
- 使用document.createElement( 'I') - ,所有其他的DOM元素
- 使用document.createElement( 'I')的appendChild - 包括所有DOM元素方法
我在這裏創建了一個jsbin測試。所有的瀏覽器應該獲得成功,除了IE瀏覽器。
http://jsbin.com/inuhux/7 - http://jsbin.com/inuhux/7/edit
什麼其它物體在IE < 9無法從Object.prototype
繼承?
我從來不建議IE <當對標準相比,9是錯誤的。我只是要求列出所有在IE <9中無法繼承的對象。 – William
也只是我對標準的兩種意義,以及瀏覽器供應商「需要」的東西。基本上標準是重要的,但肯定不定義瀏覽器的工作方式。還有很多其他的CSS和Html「標準」已經出現一段時間了,IE 9和以後都沒有遵循。最常見的是關注事實上的標準。一個很好的例子就是IE 9像大多數其他瀏覽器一樣開始從Object.prototype繼承。它的所有關於事實上的標準......以及在IE 9中的情況絕對不是標準:D – William
@ Lime-瀏覽器傾向於標準化(即使IE最終也已經與版本9並列開始,並開始支持更多W3C標準)。所以你從什麼是指定的行爲開始,然後考慮怪癖。沒有理由相信** all **瀏覽器或用戶代理供應商將使用符合ECMAScript的繼承模式創建DOM接口。我也沒有建議IE是錯誤的,只是它是一個實現的例子,它選擇不爲它的DOM API實現原型繼承。 – RobG