@Fuzzyma,我建议您使用JavaScript的原型来定义 Set 上的新方法。
不要使用在 Set 上已定义的内置方法名称。
如果您仍然喜欢使用与内置函数名称相同的函数名称,例如 add
,那么更好的方法是继承 Set 并覆盖 add()
方法。
这是向现有对象添加方法而不影响其方法并使用我们自己的具有相同名称的方法的更好方式。 这是一个很好的OOP概念,即方法重写魅力所在。
在下面的代码中,我定义了 Set 上的 addItems()
。
在http://rextester.com/LGPQC98007上在线尝试它。
var arr = [3, 7, 8, 75, 65, 32, 98, 32, 3];
var array = [100, 3, 200, 98, 65, 300];
var mySet = new Set(arr);
console.log(mySet);
Set.prototype.addItems = function(array) {
for(var item of array){
this.add(item)
}
}
mySet.addItems(array);
console.log(mySet)
» 输出
Set { 3, 7, 8, 75, 65, 32, 98 }
Set { 3, 7, 8, 75, 65, 32, 98, 100, 200, 300 }
Set.prototype.addAll
有一个一阶段的提案,详情请见Set.prototype.addAll
。 - Yury TarabankoSet#add
中。肯定有人认为Array#push
接受多个参数是不好的。 - Robert