為什么要進行方法的封裝?
在平時的生產環(huán)境中,我們經常寫出這樣的代碼:
function fAdd(iA,iB){
return iA+iB;
}
function fMul(iA,iB){
return iA-iB;
}
其本質上是這樣的:
var fAdd = function(iA,iB){
return iA+iB;
}
var fMul = function(iA,iB){
return iA-iB;
}
這樣的話,我們就創(chuàng)建了兩個全局變量,iA,iB.如果在大型的項目環(huán)境中,會有很多人對代碼進行開發(fā),很容易造成變量污染,從而引出很多問題.所以我們就要對方法進行封裝.
封裝方式1:封裝成對象
利用js中對象的特性來將我們的方法封裝在對象中
var oFuncs = {
fAdd : function(iA,iB){
return iA+iB;
}
fMul:function(iA,iB){
return iA-iB;
}
}
或者
var oFuncs = function(){};
oFuncs.fAdd = function(iA,iB){
return iA+iB;
}
oFuncs.fMul = function(iA,iB){
return iA-iB;
}
這樣,我們就可以這樣調用函數了
oFuncs.fAdd(3,4);
oFuncs.fMul(6,3);
-#
當然,還可以這么寫
var oFuncs = function(){
return {
fAdd : function(iA,iB){
return iA+iB;
}
fMul:function(iA,iB){
return iA-iB;
}
}
}
這樣的話,每次使用方法的時候,要先實例化一下:
var oUseTool = oFuncs();
oUserTool.fAdd(4,8);
封裝成類
var oFuncs = function(){
this.fAdd = function(iA,iB){
return iA+iB;
}
this.fMul = function(iA,iB){
return iA-iB;
}
}
var oUseTool = new oFuncs();
oUseTool.fAdd(5,6);
為了防止類中的方法被多次創(chuàng)建,我們也可以把它寫在原型鏈上,如:
var oFuncs = function(){}
oFuncs.propotype.fAdd = function(iA,iB){
return iA+iB;
}
oFuncs.propotype.fMul = function(iA,iB){
return iA-iB;
}
var oUseTool = new oFuncs();
oUseTool.fAdd(5,6);
或者這么寫:
var oFuncs = function(){}
oFuncs.propotype = {
fAdd : function(iA,iB){
return iA+iB;
}
fMul:function(iA,iB){
return iA-iB;
}
}
var oUseTool = new oFuncs();
oUseTool.fAdd(5,6);