The Queue class using ECMAScript 6 syntax

As we learned in Chapter 3 , Stacks, we can also write the same Queue class using the ECMAScript 6 syntax. In this approach, we will use a WeakMap to keep the property items private, and we will also use an outer function (closure) to encapsulate the Queue class.

The code is presented as follows:

let Queue2 = (function () { 
 
  const items = new WeakMap(); 
 
  class Queue2 { 
    constructor () { 
      items.set(this, []); 
    } 
    enqueue(element) { 
      let q = items.get(this); 
      q.push(element); 
    } 
    dequeue() { 
      let q = items.get(this); 
      let r = q.shift(); 
      return r; 
    } 
    //other methods 
  } 
  return Queue2; 
})(); 

You can use either of the Queue class that we created; the output of our tests will be the same.

Get Learning JavaScript Data Structures and Algorithms - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.