SOURCE

class Range {
    constructor(from, to) {
        // 这些属性不是继承的,是当前对象独有的
        this.from = from;
        this.to = to;
    }
    includes(x) { return this.from <= x && x <= this.to; }
    *[Symbol.iterator]() {
        for (let x = Math.ceil(this.from); x <= this.to; x++) yield x;
    }
    toString() { return `(${this.from}...${this.to})`; }

}

let r = new Range(1, 3);
console.log('print:', r.includes(2));
console.log('print:', r.toString());
console.log('iterator:', [...r])
console 命令行工具 X clear

                    
>
console