如何在有限的函数内执行这个结果
How to execute this result within a limited function
问题如下:
第一次调用 add 时,它将 return 1;
第二次调用时,它 returns 2;
只能写在函数中
var add = function () {
// start only
// end
};
console.log(add()); // 1
console.log(add()); // 2
目前的想法是需要一个全局变量
所以现在的写法
但是这种写法不符合要求
var add = (function () {
let counter=0
return function () {
counter += 1; return counter;}
}();
我不知道如何调整代码来解决这个问题谢谢
是这样的吗?
var add = {
time: 0,
call: () => {
add.time++;
console.log(add.time);
}
};
add.call(); // 1
add.call(); // 2
我会这样做。它隐含地创建了一个全局变量,它很脏,但它满足(奇怪的)要求。
var add = function () {
if(typeof a === "undefined") a = 0;
return ++a;
};
console.log(add()); // 1
console.log(add()); // 2
您可以在 window
对象中创建一个参数。但我更喜欢纳克西人的回答。
var add = function () {
if (window.added === undefined) window.added = 0;
window.added += 1;
return window.added;
};
console.log(add()); // 1
console.log(add()); // 2
想到的所有解决方案:
使用一个属性分配给函数
// in JS, a function is also an object; you can assign properties to it.
function add() {
if (add.value === undefined) add.value = 0;
return ++add.value;
}
console.log(add());
console.log(add());
创建本地作用域
var add = (function() {
var value = 0;
return function() {
return ++value;
};
})();
console.log(add());
console.log(add());
使用全局作用域
function add() {
if (window._currentValue === undefined) window._currentValue = 0;
return ++window._currentValue;
}
console.log(add());
console.log(add());
我认为您可能对第一个解决方案特别感兴趣。
问题如下:
第一次调用 add 时,它将 return 1;
第二次调用时,它 returns 2;
只能写在函数中
var add = function () {
// start only
// end
};
console.log(add()); // 1
console.log(add()); // 2
目前的想法是需要一个全局变量
所以现在的写法
但是这种写法不符合要求
var add = (function () {
let counter=0
return function () {
counter += 1; return counter;}
}();
我不知道如何调整代码来解决这个问题谢谢
是这样的吗?
var add = {
time: 0,
call: () => {
add.time++;
console.log(add.time);
}
};
add.call(); // 1
add.call(); // 2
我会这样做。它隐含地创建了一个全局变量,它很脏,但它满足(奇怪的)要求。
var add = function () {
if(typeof a === "undefined") a = 0;
return ++a;
};
console.log(add()); // 1
console.log(add()); // 2
您可以在 window
对象中创建一个参数。但我更喜欢纳克西人的回答。
var add = function () {
if (window.added === undefined) window.added = 0;
window.added += 1;
return window.added;
};
console.log(add()); // 1
console.log(add()); // 2
想到的所有解决方案:
使用一个属性分配给函数
// in JS, a function is also an object; you can assign properties to it.
function add() {
if (add.value === undefined) add.value = 0;
return ++add.value;
}
console.log(add());
console.log(add());
创建本地作用域
var add = (function() {
var value = 0;
return function() {
return ++value;
};
})();
console.log(add());
console.log(add());
使用全局作用域
function add() {
if (window._currentValue === undefined) window._currentValue = 0;
return ++window._currentValue;
}
console.log(add());
console.log(add());
我认为您可能对第一个解决方案特别感兴趣。