Загальною особливістю в інших мовах програмування є використання ключового слова static для збільшення lifetim (а не scope) функціональної змінної, щоб вона жила поза викликами функції. Ось зразок C, який досягає цього:
voidcalled(){static count =0; count++;printf("Called : %d", count);}intmain(){called();// Called : 1called();// Called : 2return0;}
Оскільки JavaScript (або TypeScript) не має статичні функції, ви можете досягти того самого, використовуючи різні абстракції, які обертаються поверх локальної змінної, наприклад. використовуючи class:
const{called}=newclass{ count =0;called=()=>{this.count++;console.log(`Called : ${this.count}`);}};called();// Called : 1called();// Called : 2
Розробники C++ також намагаються досягти цього за допомогою шаблону, який вони називають functor(клас, який замінює оператор ()).