在下面的代码中,
let increment = new Increment();
我要用Javascript编写一个类/函数Increment
,这样
console.log(`${increment}`)
//输出为1
console.log(`${increment}`)
;//输出为2
console.log(`${increment}`)
;//输出为3
console.log(`${increment}`)
;//输出为4
increment
不能是一个函数,即我不能执行increment()
,也不能是用于该目的的属性,即我无法执行increment.count
所以,整个问题看起来是这样的,
let increment = new Increment();
console.log(`${increment}`); //1
console.log(`${increment}`); //2
console.log(`${increment}`); //3
console.log(`${increment}`); //4
并且我应该实现函数CCD_ 10以获得期望的输出。
您可以定义一个带有私有字段的类,并覆盖toString()
方法,使其递增并返回该私有字段,请尝试:
class Increment{
constructor(){
this.i = 1;
}
toString(){
return this.i++;
}
}
let increment = new Increment();
console.log(`${increment}`);
console.log(`${increment}`);
console.log(`${increment}`);
console.log(`${increment}`);
功能类似的方法:
function Increment(){
let i = 1;
return { toString: () => i++ }
}
let increment = new Increment();
console.log(`${increment}`);
console.log(`${increment}`);
console.log(`${increment}`);
console.log(`${increment}`);