和第3章一樣,我們也可以用ECMAScript 6語法編寫Queue
類。在這種方法中,我們要用一個WeakMap
來保存私有屬性items
,並用外層函數(閉包)來封裝Queue
類。
代碼如下:
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;
}
//其他方法
}
return Queue2;
});
我們創建的兩個Queue
類你都可以用,測試的輸出是一樣的。