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.