extending built-in classes

Last updated

Last updated
// โญ extending Array
class PowerArray extends Array {
// arr.isEmpty
get isEmpty() { return this.length === 0 }
// arr.last
get last() { return this[this.length - 1] }
}
let arr = new PowerArray(1, 2, 5, 10, 50);
let filtered = arr.filter(x => x >= 10); // โญ return `PowerArray`โ
arr.isEmpty, // false
arr.last, // 50
Array.isArray(arr), // true
filtered, // PowerArray(2) [ 10, 50 ] โญ
filtered.isEmpty, // false
PowerArray.__proto__, // Array
PowerArray.isArray(filtered), // true (โญ static methods inheritedโ)