- 看透JavaScript:原理、方法與實踐
- 韓路彪
- 931字
- 2020-11-28 15:50:43
3.2 JavaScript的結構
JS的核心是對象,每個對象都可以包含0個或多個由名值對組成的屬性。
對象的屬性有兩種類型:基礎類型(直接量)和對象類型(另外還有一種特殊類型的屬性,后面再給大家介紹)。基礎類型的屬性不可以再包含屬性,而對象類型的屬性還可以再包含自己的屬性,此時該對象既是一個對象又是另外一個對象的屬性。
JS中的對象又可以分為function和object兩種類型(注意都是小寫),這一點非常重要。理解了這一點就抓住了JS的核心,在學習完后面的內容之后大家應該會有更深刻的認識。對象和屬性類型的結構如圖3-9所示。

圖3-9 對象和屬性類型的結構
Java等面向對象語言中的對象是通過類來創建的,它們的類是一個樹結構,有統一的根節點(例如Java中的Object),而JS中沒有類的概念,更沒有類的樹結構。JS中的object類型對象是使用function類型對象創建的。JS中經常使用的String、Array和Date等對象其實都是function類型的對象,就連Object對象也是function類型的對象,而使用它們創建出來的對象就是object類型。可以在FireBug中使用typeof來查看,如圖3-10所示。

圖3-10 在FireBug中使用typeof來查看對象
多知道點
在FireBug中怎么調試代碼
在FireBug的控制臺選項卡中的最下面一行可以輸入單行命令,按回車鍵后就會在當前頁面的環境中執行,即可以操作當前頁面所對應的對象。如果要執行多行命令,那么可以通過單擊輸入框右邊的紅色按鈕切換到多行代碼的模式。
在單行代碼模式下控制臺會自動輸出返回值,在多行模式下,如果想輸出多個結果,則需要使用console.log(msg)函數來實現。如果想清除控制臺的內容,那么可以單擊上方的“清除”按鈕。
需要注意的是,執行了自己的代碼之后可能會修改所在頁面的對象,例如圖3-10中的代碼就定義了obj和date兩個全局變量。如果想恢復原來的狀態,只需要刷新瀏覽器就可以了。
JS中用來創建object類型對象的各種function對象之間并沒有繼承關系,但是創建出來的object類型的對象可以繼承其他對象的屬性。另外,由于一個對象可以作為另外一個對象的屬性存在,因此對象之間還有另外一層包含關系。這些關系綜合到一起就會非常復雜,我們現在也不需要全部理解,只要明白一個對象可以是另外一個對象的屬性即可,在學完本書全部之后,這些內容就能全部理解清楚了。JS的本質就是一個大的對象,這個對象就是Global Object,它是由宿主環境(例如瀏覽器)創建出來的,在瀏覽器中就是window對象,其他的對象都是它的屬性,或者屬性的屬性。
- Android項目開發入門教程
- Python數據分析入門與實戰
- Manga Studio Ex 5 Cookbook
- PostgreSQL Cookbook
- CentOS 7 Server Deployment Cookbook
- 程序員數學:用Python學透線性代數和微積分
- 樂學Web編程:網站制作不神秘
- Web程序設計(第二版)
- Python語言科研繪圖與學術圖表繪制從入門到精通
- Java EE架構設計與開發實踐
- 人人都能開發RPA機器人:UiPath從入門到實戰
- Yii2 By Example
- Elasticsearch搜索引擎構建入門與實戰
- Java EE程序設計與開發實踐教程
- H5頁面設計與制作(全彩慕課版·第2版)