全局计数器的实现方式

2017-01-17 12:30:15

方案1
function f1() {
    var n = 999;
    nAdd = function () {
        console.log(123123);
        n += 1;
    };
    function f2() {
        console.log(n);
        return n ;
    }
    return f2;
}
var result = f1();
           console.log(result());
           //result(); // 999
nAdd();
console.log(result());
方案2
var ctx = {
    n: 0
};


var nAdd = (function () {
    console.log(123123);
    this.n += 1;
}).bind(ctx);

var nSub = (function () {
    console.log(123123);
    this.n -= 1;
}).bind(ctx);

nAdd()
nAdd()
nSub()
console.log(ctx);

方案3
function Calc() {
    this.n = 0;
}

Calc.prototype.add = function () {
    console.log(123123);
    this.n += 1;
}

Calc.prototype.sub = function () {
    console.log(123123);
    this.n -= 1;
}

var c = new Calc();
c.add();
c.sub();
console.log(c)

   其实三种方法都实现了功能   我们正式开发的过程中 一般不用第一种 因为方法及容易被其他函数里的方法覆盖  当然还有其他的方式 这里就不意义举例了

你打算打赏多少钱呢?

打赏
(微信扫一扫)