上門一對一計算機家教
當前位置: 首頁 > Web前端家教 >

Javascript自學筆記第18節 最難的部分開始了 面向對象與原型

點擊: 時間:2016-11-04 來源:北京家教網
ECMAScript有兩種開發模式:1.函數式(過程化),2.面向對象(OOP)。面向對象的語言有一個標志,那就是類的概念,而通過類可以創建任意多個具有相同屬性和方法的對象。但是,ECMAScript沒有類的概念,因此它的對象也與基于類的語言中的對象

ECMAScript有兩種開發模式:1.函數式(過程化),2.面向對象(OOP)。面向對象的語言有一個標志,那就是類的概念,而通過類可以創建任意多個具有相同屬性和方法的對象。但是,ECMAScript沒有類的概念,因此它的對象也與基于類的語言中的對象有所不同。

一.學習條件

在JavaScript視頻課程第一節課,就已經聲明過,JavaScript課程需要大量的基礎。這里,我們再詳細探討一下:

1.xhtml基礎:JavaScript方方面面需要用到。

2.扣代碼基礎:比如XHTML,ASP,PHP課程中的項目都有JS扣代碼的過程。

3.面向對象基礎:JS的面向對象是非正統且怪異的,必須有正統面向對象基礎。

以上三大基礎,必須是基于項目中掌握的基礎,只是學習基礎知識不夠牢固,必須在項目中掌握上面的基礎即可

使用構造函數的方法,即解決了重復實例化的問題,又解決了對象識別的問題,但問題是,這里并沒有new Object(),為什么可以實例化Box(),這個是哪里來的呢?

使用了構造函數的方法,和使用工廠模式的方法他們不同之處如下:

1.構造函數方法沒有顯示的創建對象(new Object());

2.直接將屬性和方法賦值給this對象;

3.沒有renturn語句。

構造函數的方法有一些規范:

1.函數名和實例化構造名相同且大寫,(PS:非強制,但這么寫有助于區分構造函數和普通函數);

2.通過構造函數創建對象,必須使用new運算符。

既然通過構造函數可以創建對象,那么這個對象是哪里來的,new Object()在什么地方執行了?執行的過程如下:

1.當使用了構造函數,并且new 構造函數(),那么就后臺執行了new Object();

2.將構造函數的作用域給新對象,(即new Object()創建出的對象),而函數體內的this就代表new Object()出來的對象。

3.執行構造函數內的代碼;

4.返回新對象(后臺直接返回)。

關于this的使用,this其實就是代表當前作用域對象的引用。如果在全局范圍this就代表window對象,如果在構造函數體內,就代表當前的構造函數所聲明的對象。

------分隔線----------------------------
30选5开奖查询