Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

246
Views
Calling a nested function JavaScript

I am new to JavaScript. I have this piece of code. I need to print the following:

//counter() should return the next number.
//counter.set(value) should set the counter to value.
//counter.decrease() should decrease the counter by 1

function makeCounter() {
  let count = 0;

  function counter() {
    return count++;
  }

  counter.decrease = function () {
    return count--;
  };

  counter.set = function (value) {
    return count = value;
  };
}

How can I call the 3 nested functions outside?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You just have to return your counter.

function makeCounter() {
  let count = 0;

  function counter() {
    return count++;
  }

  counter.decrease = function () {
    return count--;
  };

  counter.set = function (value) {
    return count = value;
  };
  
  return counter;
}

const myCounter = makeCounter();

console.log(myCounter()); // 0
console.log(myCounter()); // 1
console.log(myCounter.set(42)); // 42
console.log(myCounter()); // 42 (*see why next)
console.log(myCounter.decrease()); // 43 (*see why next)
console.log(myCounter()); // 42

  • Be carefull with notation count++ because it returns count then add 1. If you want to add 1 then return the new value of count, please write ++count.
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!