面向对象编程(OOP)中内置类原型方法扩展

向内置类原型上拓展方法

内置类原型上提供了很多方法,但是这些方法不一定能满足日常业务需求,此时需要我们自己在内置类原型上拓展方法

优点:
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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值