1. 程式人生 > >總結js面向對象調用的幾種模式

總結js面向對象調用的幾種模式

跟著 模式 也會 name proto bject prot .proto 混合模式

  一、工廠模式:類似於function func(A,B){ var obj=new Object(); obj.A=A; obj.B=B; return obj;}; var obts=func(‘name‘,‘ages‘);

  二、構造函數模式:可用於構造特定類型的對象 function createObj(A,B){ this.A=A; this.B=B; this.func=function() {alert(this.B); } } var obts=new createObj(‘name‘, ‘ages‘);使用new來創建對象,函數中不需要return;這種模式對於需要創建多個對象的情況下需要多次調用相同的函數;

  三、原型模式:創建的每個對象都有prototype屬性,該屬性是一個指針,指向一個對象,作用是包含所有實例對象的屬性和方法,實例對象屬性和方法共享類似於繼承;

    function func(A,B){ func.prototype.A=A; func.prototype.B=B; func.prototype.create=function(){ alert(1);} } var func1=new func(); 所有原型對象共用導致其中一個實例修改屬性,其他的實例也會跟著修改;

  四、混合模式(原型+構造):function func(A,B){ this.A=A; this.B=B} func.prototype.create=function(){alert(1);};這樣可以實現每個實例對象都有自己的屬性,而方法則實現了共用;

總結js面向對象調用的幾種模式