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