我正在尝试编写一个函数,当被调用时将返回考虑先前对它的调用。我是JavaScript的新手,所以我只想确保它可以完成。我想将变化的值存储在一个可变变量中。
var formatPrint = function(orig, changed){
return "Started with "+orig+" now is "+changed;
}
var adder = function(orig){
var changed = orig;
return function(){return printer(orig, (changed+5))};
}
我正在调用函数如下:
var orig10 = adder(10);
orig10();
从10开始的返回现在是15
orig10();
从10开始的返回现在是15
orig10();
从10开始的返回现在是15
应该回来 从10开始的返回现在是15 从10开始的返回现在是20 从10开始的返回现在是25
抱歉,如果我的代码应该输入论坛,我就会遇到问题。我是个笨蛋..感谢你的帮助
答案 0 :(得分:1)
+=怎么办?
var adder = function(orig){
var changed = orig;
return function(){return printer(orig, (changed+=5))};
}
答案 1 :(得分:1)
阅读您的问题和评论,似乎您正在尝试创建某种class
,您可以使用它来执行某些数学函数,并在请求时格式化特定字符串。如果是这样,那么你可能会想要做这样的事情。
的Javascript
function MyConstructor(orig) {
this.orig = this.current = orig;
}
MyConstructor.prototype.toString = function () {
return "Started with " + this.orig + " now is " + this.current;
};
MyConstructor.prototype.add = function (value) {
this.current += value;
return this;
};
MyConstructor.prototype.subtract = function (value) {
this.current -= value;
return this;
};
MyConstructor.prototype.multiply = function (value) {
this.current *= value;
return this;
};
MyConstructor.prototype.divide = function (value) {
this.current /= value;
return this;
};
MyConstructor.prototype.mod = function (value) {
this.current %= value;
return this;
};
var orig10 = new MyConstructor(10);
console.log(orig10.toString());
orig10.add(5).multiply(5).mod(2);
console.log(orig10.toString());
输出
Started with 10 now is 10 Started with 10 now is 1上