*JavaScript是基於原型的面嚮對象語言,每個對象都有一個原型。
*原型是遞歸的——對象的原型是對象;原型的對象是原型。
1.原理
對象定義(定義類)——>prototype(類模板)——>對象實例(對象)——
2.創建對象的方式
2.1:工廠方式——在一個方法中(new一個Object對象,再添加對象的屬性和方法);通過方法產生對象
2.2: 構造方法方式——在一個類中設置屬性和方法;再通過new類來產生對象。
2.3: 原型方式——定義一個空類,用類的prototype來設置屬性和方法;通過new類來產生對象。
*改進型代碼:
function Person(name){
this.name=name;
if(typeof Person.xxx=="undefined"){
Person.prototype.say=function(){
alert("唯一創建");
};
Person.xxx=true;
}
}
2.4: 構造+原型方式創建對象——構造的部分設置私有的屬性和方法,原型部分設置共用的屬性和方法;用new產生對象。
2.5:JSON格式——
3.繼承
3.1:對象冒充——冒充——>繼承——>刪除冒充——>添加新屬性和方法
3.2:call()方式——父類.call(this(對象),參數列表)——>添加新屬性和方法
3.3:apply()方式——父類apply(this,參數數組)——>添加新屬性和方法
3.4:原型鏈——定義對象——>對象調用prototype添加新屬性和方法
4.其它
4.1:對象的創建——使用new運算符或構造函數創建
4.2:對象銷燬與垃圾回收——自動回收垃圾;將不用屬性設值爲null會加快回收時間。
4.3:動態添加屬性和方法
*delete關鍵字只用於刪除對象的屬性、數組的元素。
4.4:new
4.5:with語句——代碼塊引用,
4.6:for…in語句——遍歷一個對象的所有屬性和函數。