如何解决试图创造这个有人可以帮忙吗?
有人可以协助以下查询吗?
在 JavaScript 中,定义一个函数 makeCounter
,它接受一个定义初始值 start
的可选参数,默认值为 0。该函数应返回一个包含定义 3 个方法的键的对象:
- value
返回计数器的当前值
- increment
将计数器的值加 1 并返回新值
- decrement
将计数器的值减 1 并返回新值
The returned object should not allow direct modification or retrieval of the value.
Example usage:
var counter = makeCounter();
console.log(counter.value());
// 0
var counter2 = makeCounter(4);
console.log(counter2.value());
// 4
console.log(counter2.increment());
// 5
console.log(counter2.value());
// 5
counter2.decrement();
counter2.decrement();
console.log(counter2.decrement());
// 2
解决方法
我建议不要使用函数 makeCounter()
,而是只使用 new
运算符。 #
类字段的 value
前缀使其成为私有。
class Counter {
#value
constructor(value = 0) {
this.#value = value;
}
value() {
return this.#value;
}
increment() {
this.#value++;
}
decrement() {
this.#value--;
}
}
let counter = new Counter(3);
console.log(counter.value());
counter.increment();
console.log(counter.value());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。