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

141
Views
Illegal constructor Java script

I am new to Javascript and so I am just trying to implement a basic queue, but I get the error: Uncaught TypeError: Illegal Constructor. I really don't know what is wrong. Here is my code.

class node{
  constructor(id,value){
    this.id = id;
    this.value = value;
    this.next = null;
  }
  getId(){
    return this.id;
  }
  getValue(){
    return this.value;
  }
  setValue(value){
    this.value = value;
  }
  getNext(){
    return this.next;
  }
  setNext(next){
    this.next = next;
  }
}


class queue{
  constructor(){
    this.head = null;
    this.size = 0;
    this.tail = null;
  }
  enqueue(value){
    let newNode = new Node(this.size,value); //This is line 39
    if (this.size === 0){
      this.head = newNode;
      this.tail = newNode;
      this.size++;
      return;
    }
    this.tail.next=newNode;
    this.tail = newNode;
    this.size +=1;
  }
  dequeue(){
    if (this.size > 0){
      let temp = this.head.getValue();
      this.head = this.head.getNext();
      this.size --;
      return temp;
    }
    return null;
  }

}


var q= new queue();
q.enqueue(1)
console.log(q.dequeue);

It throws it on the line in enqueue where I make a new node. Is there some limitation to making objects in objects that I don't know? I have attached the error message. Line 39 in the where I make a new node object.Error Message

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

0

No there aren't any limitations here. Change Node to node. The casing should match. I suggest formatting the code correctly and looking up some of the JS conventions (classes should be PascalCase, or at least follow the same convention). Also don't use var, it's an outdated feature with scoping issues especially for newbies.

about 4 years ago · Juan Pablo Isaza Report

0

The issue was with the typo of class name for node in function enqueue(value).

Here is the working code after updating the same-

enqueue(value){
    let newNode = new node(this.size,value); //This is line 39
    if (this.size === 0){
      this.head = newNode;
      this.tail = newNode;
      this.size++;
      return;
    }
    this.tail.next=newNode;
    this.tail = newNode;
    this.size +=1;
  }
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!