為了防止一些函式之間同名的可能性,可以將屬於乙個模組的**封裝在一起。這樣外部就無法呼叫一些私有函式了,就不會出現容易同名的情況出現。
方法一:
(function (exports) ;
exports.$class1 = obj;
obj.publicfunction = function () {}//外部可呼叫函式
function privatefunction() {}//私有函式
})(this);
呼叫的時候 $class1.publicfunction();
注:適合靜態類,因為這種類似 類名.方法。這種方式無法儲存資料。
方法二:object建構函式建立
var obj = {};
//或者 var obj = new object();
obj.variablequantity = "";
obj.functionli = function () {}
呼叫的時候 obj.functionli();
注:適合類的方法各不相同的情況。
方法三:字面量表示法
類似上面方法二
var obj =
}
呼叫的時候 obj.functionli();
注:適合類的方法各不相同的情況。
方法四:工廠模式建立(寄生建構函式模式)
function myclass(variablequantity) ;
return o;
}
呼叫的時候 var obj = myclass("");
注:適合結構相同,引數不同。
注意:由於這個情況不能依賴instanceof來判斷物件型別,所以最好不使用。
方法五:建構函式建立(動態原型模式)
function myclass(variablequantity) ;
/************私有內容區域************/
function privatefunction() {};
}
呼叫的時候
var obj = new myclass("");
obj.basefunction();
注:適合結構相同,引數不同。
注:如果在類中使用this,則this的值為最後乙個定義的值
方法六:原型建立
function myclass(){}
myclass.prototype.variablequantity = 'nike';
myclass.prototype.basefunction = function() {};
呼叫的時候
var obj = new myclass();
obj.basefunction();
注:適合大部分結構相同。
方法七:混合型(構造+原型)
function myclass(variablequantity)
myclass.prototype = ;
}
呼叫的時候
var obj = new myclass("");
obj.basefunction();
注:適合大部分結構相同。
啦啦啦,又學會了好幾招。當然了,如果需要繼承其他的類,也可以使用mixin多繼承的方法哦,看看去吧。
js 建立物件的幾種方式
一 原始方式 解釋 原始方法建立物件,通過new關鍵字生成乙個物件,然後根據js是動態語言的特性新增屬性和方法,構造乙個物件。其中this是表示呼叫該方法的物件。缺點 多次建立物件,則需要重複 多次,不利於 的復用。二 工廠模式 var getage function var getname fun...
js 建立物件的幾種方式
第一種 工廠模式 例1 function createobj name,age return o var per1 createobj 張三 20 per1.sayinfo 缺點 無法知道物件的型別 第二種 建構函式模式 例2 function person name,age var per2 ne...
js建立物件的幾種方式
雖然object建構函式或物件字面量都可以建立單個物件,但這些方式有個明顯的缺點,那就是使用同乙個介面創造很多物件,會產生大量的重複 所以產生了下面幾種模式。1 工廠模式 function createperson name,age,job o.name name o.age age o.job j...