我查看了建议的链接,但似乎找不到一个像类一样作用的函数术语(是构造函数吗?它也没有这个关键字!),但不使用new
关键字或者class
。
我在我的代码中使用了这个例子的模式和类模式,但意识到我不知道如何描述前者。
我想部分原因是因为我最近学习了JS,看到了很多class
,但是在翻看我的笔记(非 ES5,6,7,2018,2020)时,似乎找不到var aCounter = counterFunction()
被称为什么。
我知道我正在做的结果,如何工作等等,但为什么没有constructor()
,没有new
,没有class
,没有etc.prototype.etc
模式呢?我知道我正在创建一个对象,调用对象内部的方法等等。我相信我开始东拉西扯了。
下面是一个例子:
const counterFunction = () => {
let val = 0
return {
increment() { val++ },
getVal() { return val }
}
}
这可以像下面这样被实例化:
let aCounter = counterFunction() // where i'm getting tripped up
并且工作原理类似于
aCounter.increment() // 1
aCounter.increment() // 2
aCounter.getVal() // 2
我知道这有点啰嗦,但帮帮我!我认为一旦这个词汇难题得到解决,事情就会更加清晰明了!