Java对象及相关
1、宿主環境:一般宿主環境由外殼程序創建與維護,只要能提供js引擎執行的環境都可稱之為外殼程序。如:web瀏覽器,一些桌面應用系統等。即由web瀏覽器或是這些桌面應用系統早就的環境即宿主環境。
2、本地對象
ECMA-262 把本地對象(native object)定義為“獨立于宿主環境的 ECMAScript 實現提供的對象”。
再來看一下,“本地對象”包含哪些內容:
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
由此可以看出,簡單來說,本地對象就是 ECMA-262 定義的類(引用類型)。
3、內置對象
ECMA-262 把內置對象(built-in object)定義為“由 ECMAScript 實現提供的、獨立于宿主環境的所有對象,在 ECMAScript 程序開始執行時出現”。這意味著開發者不必明確實例化內置對象,它已被實例化了。
同樣是“獨立于宿主環境”。根據定義我們似乎很難分清“內置對象”與“本地對象”的區別。而ECMA-262 只定義了兩個內置對象,即 Global 和 Math (它們也是本地對象,根據定義,每個內置對象都是本地對象)。
如此就可以理解了。內置對象是本地對象的一種。而其包含的兩種對象中,Math對象我們經常用到,可這個Global對象是啥東西呢?
Global對象是ECMAScript中最特別的對象,因為實際上它根本不存在,但大家要清楚,在ECMAScript中,不存在獨立的函數,所有函數都必須是某個對象的方法。類似于isNaN()、parseInt()和parseFloat()方法等,看起來都是函數,而實際上,它們都是Global對象的方法。而且Global對象的方法還不止這些。有關Global對象的具體方法和屬性,感興趣的同學可以看一下這里:JavaScript 全局對象參考手冊
4.宿主對象
由ECMAScript實現的宿主環境提供的對象,可以理解為:瀏覽器提供的對象。所有的BOM和DOM都是宿主對象。
5.自定義對象
總結:
JS中,可以將對象分為“內部對象”、“宿主對象”和“自定義對象”三種。
1,內部對象
js中的內部對象包括Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各種錯誤類對象,包括Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError。
其中Global和Math這兩個對象又被稱為“內置對象”,這兩個對象在腳本程序初始化時被創建,不必實例化這兩個對象。
2.宿主對象
宿主對象就是執行JS腳本的環境提供的對象。對于嵌入到網頁中的JS來說,其宿主對象就是瀏覽器提供的對象,所以又稱為瀏覽器對象,如IE、Firefox等瀏覽器提供的對象。不同的瀏覽器提供的宿主對象可能不同,即使提供的對象相同,其實現方式也大相徑庭!這會帶來瀏覽器兼容問題,增加開發難度。
瀏覽器對象有很多,如Window和Document等等。
3.自定義對象
顧名思義,就是開發人員自己定義的對象。JS允許使用自定義對象,使JS應用及功能得到擴充
Global對象
Global(全局)對象是在ECMAScript中是一個特別的對象,因為這個對象是不存在的。在ECMAScript 中任何不屬于其他對象的方法和屬性都是這個對象的方法和屬性。所有事實上并不存在什么全局屬性和全局函數,因為一切全局的函數和屬性都是這個Global對象的方法和屬性。但是由于這個對象并不是真真存在的,并且ECMAScript也沒有定義怎樣定義和調用這個對象,故所有Global.屬性和Global.()都是無效的,但是在WEB瀏覽器中中把Global對象作為window對象的一部分實現了,故一切的所謂的全局屬性和方法都是window對象的方法和屬性。
轉自博客
轉載于:https://www.cnblogs.com/Ajay-blog/p/6423469.html
總結
- 上一篇: AppDomain
- 下一篇: 面试-设计模式六大原则