方案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)
其实三种方法都实现了功能 我们正式开发的过程中 一般不用第一种 因为方法及容易被其他函数里的方法覆盖 当然还有其他的方式 这里就不意义举例了
你打算打赏多少钱呢?
(微信扫一扫)