內建(Build-in)物件與原生(Naitve)物件的差別在於:前者總是在引擎初始化階段就被創造好的對象,是後者的子集;而後者包含了一些在運作過程中動態建立的物件。
此外,補充一下圖中用到的概念:
1、內建(Build-in)物件與原生(Naitve)物件的區別在於:前者總是在引擎初始化階段就被創建好的對象,是後者的子集;而後者包括了一些在運行過程中動態建立的物件。
2、引擎擴充物件是一個不太大的集合,一般來說比較確定,它們也屬於引擎的原生物件(但不屬於ECMA規範的原生物件)。
3、宿主物件不是引擎的原生對象,而是由宿主框架透過某種機制註冊到JavaScript引擎中的物件。
4、一些宿主會把自己提供的物件/建構器也稱為“原生物件”,例如Internet Explorer 7就把它提供的XMLHttpRequest()稱為原生的——與此相對的是在它的更早先版本中透過「new ActiveXObject('Microsoft.XMLHTTP')」這樣的方法所建立的物件。在這種情況下,讀者應注意到「宿主的原生物件」與「引擎的原生物件」之間的差異。
透過這張圖希望可以幫助大家更好的明白JavaScript各類型的關係,有所收貨。