如何解决如何在不调用Javascript中任何函数的方法或属性的情况下仅使用类/函数的对象来增加计数器
在下面的代码中,
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
解决方法
您可以定义一个带有私有字段的类并覆盖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}`);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。