js封装代码的两种形式-实例

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

function fAdd(iA,iB) {
    return iA + iB;
}

function fMud(iA,iB) {
    return iA - iB;
}

其本质上是这样的:

var fAdd = function (iA,iB) {
    return iA + iB;
}

var fMud = function (iA,iB) {
    return iA - iB;
}

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

方式一:封装成对象
利用js中对象的特性将我们的方法封装在对象中:

var oFuncs = {
    fAdd : function (iA,iB) {
        return iA + iB;
    },
    fMud : function (iA,iB) {
        return iA - iB;
    }
}

//或者
var oFuncs = function () {}
oFuncs.fAdd = function (iA,iB) {
    return iA + iB;
}
oFuncs.fMud = function (iA,iB) {
    return iA - iB;
}
//这样我们就可以这样调用了
oFuncs.fAdd(1,2);
oFuncs.fMud(2,1);

//再或者,我们还可以这样写
var oFuncs = function () {
    return {
        fAdd : function (iA,iB) {
            return iA + iB;
        },
        fMud : function (iA,iB) {
            return iA - iB;
        }
    }
}
//这样的话,每次使用方法的时候,要先实例化一下
var oUseTool = new oFuncs();
oUseTool.fAdd(1, 2);
oUseTool.fMud(2, 1);

方式二:封装成类

var oFuncs = function () {
    this.fAdd = function (iA,iB) {
        return iA + iB;
    };
    this.fMud = function (iA,iB) {
        return iA - iB;
    }
}

var oUseTool = new oFuncs();
oUseTool.fAdd(1,2);

 //为防止类中的方法被多次创建,我们也可以把它写在原型链上,如:
var oFuncs = function () {};
oFuncs.prototype.fAdd = function (iA,iB) {
    return iA + iB;
}
oFuncs.prototype.fMud = function (iA,iB) {
    return iA - iB;
}

var oUseTool = new oFuncs();
oUseTool.fAdd(1,2);
//或者这样写
var oFuncs = function () {

};
oFuncs.prototype = {
    fAdd : function (iA,iB) {
        return iA + iB;
    },
    fMud : function (iA,iB) {
        return iA - iB;
    }
}

var oUseTool = new oFuncs();
console.log(oUseTool.fAdd(1, 2));
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值