Javascript 统计函数被调用次数的函数
Javascript Function that Counts How Many Times the Function was Called
我的任务是创建一个名为 countTimesCalled 的箭头函数,它不带任何参数。它必须 return 每次被调用的次数。该功能应该是完全独立的。
这就是我目前所拥有的,我希望它符合这些思路,但我不知道如何初始化计数器。任何帮助将不胜感激!
countTimesCalled = () => {
counter = 0;
if (counter == undefined){
counter = 1;
return(this.counter)
} else {
return(this.counter++)
}
您可以将 属性 附加到跟踪计数的函数本身:
const countTimesCalled = () => {
if (!countTimesCalled.count) {
countTimesCalled.count = 0;
}
return ++countTimesCalled.count;
};
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
可以在函数本身加一个属性来保存使用次数
const countTimesCalled = () => {
countTimesCalled.counter=!countTimesCalled.counter?0:countTimesCalled.counter;
return ++countTimesCalled.counter ;
};
或没有箭头功能。
function countTimesCalled () {
if (!this.counter) {
this.counter = 0;
}
return ++this.counter;
};
注意:但第一个代码是最好的。
创建一个 immediately invoked function expression that uses arrow functions 和 returns 计数箭头函数。这样你就不需要函数引用自身并且计数与外界完全隔离:
const countTimesCalled = (count => () => ++count)(0);
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
const countTimesCalled = (
count => // <-------------<-------------<-------------+
() => ++count // |
// ^^^^^^^^^^^^^ gets assigned to `countTimesCalled` |
)(0); // -->- passed as argument ->---------->----------+
扩展版如下:
const countTimesCalled = (
() => {
let count = 0;
return () => {
count += 1;
return count;
};
}
)();
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
我的任务是创建一个名为 countTimesCalled 的箭头函数,它不带任何参数。它必须 return 每次被调用的次数。该功能应该是完全独立的。
这就是我目前所拥有的,我希望它符合这些思路,但我不知道如何初始化计数器。任何帮助将不胜感激!
countTimesCalled = () => {
counter = 0;
if (counter == undefined){
counter = 1;
return(this.counter)
} else {
return(this.counter++)
}
您可以将 属性 附加到跟踪计数的函数本身:
const countTimesCalled = () => {
if (!countTimesCalled.count) {
countTimesCalled.count = 0;
}
return ++countTimesCalled.count;
};
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
可以在函数本身加一个属性来保存使用次数
const countTimesCalled = () => {
countTimesCalled.counter=!countTimesCalled.counter?0:countTimesCalled.counter;
return ++countTimesCalled.counter ;
};
或没有箭头功能。
function countTimesCalled () {
if (!this.counter) {
this.counter = 0;
}
return ++this.counter;
};
注意:但第一个代码是最好的。
创建一个 immediately invoked function expression that uses arrow functions 和 returns 计数箭头函数。这样你就不需要函数引用自身并且计数与外界完全隔离:
const countTimesCalled = (count => () => ++count)(0);
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
const countTimesCalled = (
count => // <-------------<-------------<-------------+
() => ++count // |
// ^^^^^^^^^^^^^ gets assigned to `countTimesCalled` |
)(0); // -->- passed as argument ->---------->----------+
扩展版如下:
const countTimesCalled = (
() => {
let count = 0;
return () => {
count += 1;
return count;
};
}
)();
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());