这里演示的是Array的一个去重的原型方法的定义,当然也可以定义其他的方法,同样也不只局限于Array。String,Object, Number...都可以。
console.log(Array.prototype)可以 查看数组的原型方法
可以看到prototype里面的方法很多
话不多说,直接上代码
//给Array定义一个去重的原型方法
console.log(Array.prototype);
Array.prototype.unDuplication = function () {
// console.log(this); //这里的this指向实例化的对象
// 返回值为一个新数组 不改变实例化对象本身(原数组)
return Array.from(new Set(this));
};
let arr = new Array(1, 2, 3, 4, 5, 2, 2, 2);
let arr1 = new Array(10, 20, 30, 40, 50, 10, 20);
arr = arr.unDuplication();
arr1 = arr1.unDuplication();
console.log(arr); //[1, 2, 3, 4, 5]
console.log(arr1); //[10, 20, 30, 40, 50]
// 这里再次输出Array.prototype
console.log(Array.prototype);
let arr3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 1, 2, 3, 4];
arr3 = arr3.unDuplication();
console.log(arr3);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10]
这个时候我们再次console.log(Array.prototype);就会发现数组的原型方法中有了unDuplication 这个方法