向内置类原型上拓展方法
内置类原型上提供了很多方法,但是这些方法不一定能满足日常业务需求,此时需要我们自己在内置类原型上拓展方法
优点:
1.调用起来方便
2.可以链式调用,不用嵌套。
3.限定了调取方法的类型,必须是指定类的实例。
4.拓展的方法,小组其他成员都能用,相当于公共方法了。
缺点:
1.自己写的内置类的方法容易覆盖内置的方法,解决办法是在自己拓展的方法前面加my,比如mypop.同时Array.prototype={}是无效的,也怕自己会一行代码把所有的方法搞丢。
2.基于for…in遍历的时候,会把自己拓展到原型上的方法遍历到。
在写自己拓展的方法的时候,发现了一个小盲点,记录一下。
至于原因,具体可以参考这个blog
https://blog.csdn.net/xxouu/article/details/79582742
一个方法实现数组去重
function myunique(arr) {
let obj = {}
for (let i = 0; i < arr.length; i++) {
let item = arr[i];
if (obj.hasOwnProperty(item)) {
arr.splice(i, 1);
i--;
continue;
}
obj[item] = item;
}
return arr
}
let arr = [1, 1, 20, 333, 444, 444]
arr1 = myunique(arr)
console.log(arr1);//[1, 20, 333, 444]