1.關于面向對象的概念
a. 類 class :在js中就是構造函數
*在傳統的買你想對象語言中,使用一個叫做類的東西定義模板,然后使用模板創建對象。
*在構造方法中也具有類似的功能,因此稱其為類
//在JAVA 中,最小的代碼單位是 類
class Program{
//成員
}
//構造函數就叫做類
b.實例(instance)與對象(object)
*實例一般是指某一個構造函數創建出來的對象,我們稱為xxx構造函數的實例
*實例就是對象,對象是一個泛稱
*實例與對象是一個近義詞
c.鍵值對與屬性和方法
*在js中鍵值對的集合稱為對象
*如果值為數據(非函數),就稱該鍵值對為屬性
*如果值為函數(方法),就稱該鍵值對為方法method
d.父類與子類
*傳統的面向對象語言中,使用類來實現繼承,那么就有父類,子類的概念
*父類又稱為基類,子類有稱為派生類
*在js中常常稱為父對象,子對象,基對象,派生對象
2.原型相關的概念
a.神秘對象針對構造函數稱為"原型屬性"
*神秘對象就是構造函數的原型屬性(簡稱原型)
b.神秘對象與構造函數所創建出來的對象也有一定的關系
*關系是什么(對象調方法或者訪問屬性的時候,如果對象沒有這個成員,到神秘對象上去找,也就是到這個對象的構造函數的原型屬性上去找)
*神秘對象針對構造函數創建出來的對象 稱為原型對象,簡稱原型
c.對象繼承自其原型
*構造函數創建的對象 繼承自 構造函數的原型屬性
*構造函數創建的對象 繼承自 該對象的原型對象
*構造函數所創建出來的對象與構造函數的原型屬性表示的對象是兩個不同的對象
*原型中的成員,可以直接被實例對象所使用(也就是說,實例對象直接"含有" 原型中的成員,因此實例對象 繼承自 原型,這樣的繼承就是"原型繼承")
3.一些問題
*{} 構造函數是什么?
*凡是字面量的對象都有構造函數
*{} object
*[] array
*/./ RegExp
*function ...