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

193
Views
this.init not a function

I'm doing this for class and the test they have says my constructor is not being initialized so I looked that up and found this.init(). Now I am getting "this.init() is not a function and I am not sure why.

My code:

function CuboidMaker(length, width, height){
  const volume = () => {
    return this.length * this.width * this.height
  }

  const surfaceArea = () => {
    return 2 * (this.length * this.width + this.length * this.height + this.width * this.height)
  }

  this.length = length
  this.width = width
  this.height = height
  this.volume = volume
  this.surfaceArea = surfaceArea
  this.init()
}
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Is it simply that you're not creating a new instance of the constructor?

Also, volume and surfaceArea are both functions and need to be called.

function CuboidMaker(length, width, height){

  const volume = () => {
    return this.length * this.width * this.height;
  }

  const surfaceArea = () => {
    return 2 * (this.length * this.width + this.length * this.height + this.width * this.height);
  }

  this.length = length;
  this.width = width;
  this.height = height;
  this.volume = volume();
  this.surfaceArea = surfaceArea();

}

const a = new CuboidMaker(1, 2, 3);
console.log(a);

about 4 years ago · Juan Pablo Isaza Report

0

I think you don't initialize you're class correctly. Try this syntax :

class CuboidMaker{
        constructor(length, width, height){
            this.length = length;
            this.width = width;
            this.height = height;
        }
        volume(){
          return this.length * this.width * this.height
        }
        surfaceArea(){
                return 2 * (this.length * this.width + this.length * this.height + this.width * this.height)
        }
    }
    
    let myCuboid = new CuboidMaker(1, 2, 3);
    console.log(myCuboid.volume());
    console.log(myCuboid.surfaceArea());

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!