天天看點

面向對象--工廠方式和構造函數

1. 工廠方式

工廠方式

  • 面向對象中的封裝函數
  • 改成與系統對象類似寫法
    • 首字母大寫
    • New 關鍵字提取
    • This指向為新建立的對象
  • 構造函數
    • 用來建立對象的函數,叫做構造函數
  • 存在的問題
    • 對象的引用
    • 浪費記憶體
//工廠方式 : 封裝函數
function createPerson(name){    
    //1.原料
    var obj = new Object();
    //2.加工
    obj.name = name;
    obj.showName = function(){
        alert( this.name );
    };
    //3.出場
    return obj;

}

var p1 = createPerson('小明');
p1.showName();
var p2 = createPerson('小強');
p2.showName();
           

2. 構造函數

當new去調用一個函數 : 這個時候函數中的this就是建立出來的對象,而且函數的的傳回值直接就是this啦(隐式傳回)

new後面調用的函數 : 叫做構造函數

通過系統對象模仿自己封裝的對象

var arr = new Array();
var date = new Date();
           
function CreatePerson(name){    
    this.name = name;
    this.showName = function(){
        alert( this.name );
    };
}

var p1 = new CreatePerson('小明');
//p1.showName();
var p2 = new CreatePerson('小強');
//p2.showName();
alert( p1.showName == p2.showName );  //false
           

繼續閱讀