class类

            class Foo {
                constructor(){
                    this.a = 'a'
                }
                gougou(){
                    return 'dididada'
                }
                jiji(temp){
                    if(!isNaN(temp)){
                        return Number(temp)+20
                    }else{
                        return 'Hello |' + this.a + '| ' + temp;
                    }
                }
            }
            let p = new Foo;
//            console.log(p)
//            console.log(p.jiji(50))
//            console.log(p.jiji('bobo'))
//            console.log(p.gougou())
            
            //继承
            class Ary extends Array{
                constructor(){
                    super();//必须要加才能用this
                    this.a = '10';
                    this.b = '20'
                }
                fn(arg){
                    if(this.length > 4){
                        //使用super调用继承的数组方法排序,只要length>4就不会再添加项而是去排序
                        super.sort(function(a,b){
                            return a-b
                        })
                    }else{
                        if(arg < 1){
                            return this.push(this.a)
                        }else if(arg == 1){
                            return this.push(1)
                        }else{
                            return this.push(this.b)
                        }
                    }
                    
                    
                }
            }
            let aa = new Ary;
        aa.fn(-1);
        aa.fn();
        aa.fn(20);
        aa.fn(1)
        aa.fn(3)
class SuperArray extends Array { shuffle(){//洗牌算法
for(let i = this.length-1;i>0;i--){ const j = Math.floor(Math.random()*(i+1)); [this[i],this[j]] = [this[j],this[i]];//数组结构赋值 } } } let a = new SuperArray(1,2,3,4,5); console.log(a) a.shuffle(); console.log(a)

原文地址:https://www.cnblogs.com/liufeiran/p/13679137.html