Надеюсь я буду отвечать в правильном направлении, так как вопрос задан, скажем так туманно.
Во первых, как уже упомянули, функции inc1 и inc2 идентичны по смыслу.
В чем вообще смысл использования замыканий в js, в подобных примерах.
Допустим вам нужно много счетчиков, не важно зачем, просто по факту, если использовать просто функции, то это будет что-то на подобии:
var counter1 = 0,
counter2 = 2;
function inc1() {
retunr ++counter1;
}
function inc2() {
retunr ++counter2;
}
//ну и потом можно их вызывать когда надо...
//не очень красиво, это их только 2, а если надо 10... ну и т.д.
И тут мы можем использовать замыкания для решения этой тривиальной задачи:
function createCounter(startCount) {
var counter = startCount || 0;
return function() {
return ++counter;
}
}
var counter1 = createCounter();
var counter2 = createCounter(5);
в переменных counter1 и counter2 будут функции, которые
при вызове будут возвращать значения counter,
НО механизм замыканий обеспечивает, что эта переменная counter для каждой функции будет своя, потому, что при каждом новом вызове createCounter создается новая область видимости.