我听到了这个问题,我不确定如何解决它。
要求是:实现函数from
,因此它将在以下场景中执行:
var x = from(3);
console.log(x()); //outputs 3
console.log(x()); //outputs 4
//TODO: implement from()
我尝试过类似的事情:
function from(val) {
var counter = val;
return function(){
return counter+=1;
}
}
但是我第一次运行它时会增加值,所以不行。
答案 0 :(得分:5)
var x = from(3);
function from(startValue) {
var counter = startValue;
return function() {
return counter++;
}
}
console.log(x()); //outputs 3
console.log(x()); //outputs 4
答案 1 :(得分:2)
最直接的解决方案是从1
中简单地减去counter
:
function from(val) {
var counter = val - 1;
return function(){
return counter += 1;
}
}
但是,在这种情况下,您可以使用postfix ++
运算符,因为在counter++
中,counter
的值增加1,但 old < / strong>返回counter
的值
function from(val) {
var counter = val;
return function(){
return counter++;
}
}
为完整起见,相当于counter += 1
的内容为++counter
。
答案 2 :(得分:0)
function from(val) {
var counter = val;
return function() {
return counter++;
}
}
var x = from(3);
alert(x()); //outputs 3
alert(x()); //outputs 4
alert(x()); //outputs 5
alert(x()); //outputs 6
alert(x()); //outputs 7
alert(x()); //outputs 8
试试这个