class Myset { constructor(iterator) { if (typeof iterator[Symbol.iterator] != "function") { throw new TypeError(" object is not iterable (cannot read property Symbol(Symbol.iterator))") } this._data = []; for (var item of iterator) { this.add(item); } }
get size(){//没有set,因为该属性是只读的
return this._data.length;
} add(item) { if (this.has(item)) { return; } this._data.push(item) } delete(item){ var index = this._data.findIndex(ele=>ele == item); if(index < 0){ return false; } this._data.splice(index,1); return true; } has(item) { if (this._data.indexOf(item) < 0) { return false; } return true; } *[Symbol.iterator](){ //能够用for of循环 for( var item of this._data){ yield item; } } } var myset = new Myset([1, 23, 4])