2013-07-31 25 views

回答

8

IE8 (attempts to) implementECMAScript 3其中typeof運算符結果是爲主機對象定義的實現,無論對象是否實現[[call]]。在ES5中,可調用主對象必須返回"function"

見的ECMAScript 3

enter image description here

表比較在ECMAScript 5.1 http://www.ecma-international.org/ecma-262/5.1/#sec-11.4.3

+0

+1實際上得到的東西的根源。基本上,IE8正在實施它發佈時的標準;新的瀏覽器正在實現標準的更新版本,同時標準也發生了變化。 – Spudley

+0

因此,基本上,如果我錯了,根據EC3,任何不是本地的,undefined,null,布爾值,數字或字符串都沒有'官方'類型的對象?所以我可以實現'typeof',其中'{}'是一個函數,'function(){}'是一個對象,並且仍然完全符合(使用EC3)? – Stilltorik

+1

@Stilltorik否,因爲它們都是本地的。主機對象是由JavaScript主機提供的對象。就像瀏覽器提供的document.getElementById等一樣,但在語言本身中是不可能的,因爲語言不應該與瀏覽器綁定。 – Esailija

相關問題