Из любопытства я хотел бы посмотреть, есть ли лучший ответ, чем то, что ниже. Как я могу преобразовать это:
def counter():
ctr = 0
def inner():
ctr += 1
return ctr
return inner
counter = counter()
в этот эквивалент javascript?
counter = (function() {
let ctr = 0;
return function() {
return ++ctr;
} //inner anonymous func
})(); //outer func, called and forgotten, sort of.
Python выше в порядке, мне просто любопытно, есть ли более быстрый/более читаемый способ сделать это.
Чтобы было ясно, я не хочу, чтобы внешняя фабричная функция была доступна после ее вызова, и я хочу, чтобы она вызывалась сразу после ее определения. Думайте об этом как о замыкающем синглтоне. Спасибо!
ctr += 1
делает не то, что вы думаете. - person blhsing   schedule 02.06.2021UnboundLocal
. если вы действительно попытаетесь использоватьcounter()
- person juanpa.arrivillaga   schedule 02.06.2021