转-js方法的封装

为什么要进行方法的封装?
在平时的生产环境中,我们经常写出这样的代码:

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;
}


这样的话,我们就创建了两个全局变量,iA,iB.如果在大型的项目环境中,会有很多人对代码进行开发,很容易造成变量污染,从而引出很多问题.所以我们就要对方法进行封装.

封装方式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);

封装方式2: 封装成类

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);

为了防止类中的方法被多次创建,我们也可以把它写在原型链上,如:

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);

---------------------


作者:chengyu_wang
来源:CSDN
原文:https://blog.csdn.net/qq_17347575/article/details/77439988
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/dragonwave/p/10372283.html